作者peterwu76 (金冈)
看板R_Language
标题[问题] import/read csv/xls file large data file
时间Tue Apr 18 00:15:21 2017
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
问题很多不好意思麻烦大家了,自己有稍微google过,但总理不出头绪
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我想要import/read csv or xlsx file,但我不清楚R的概念。
1. 如我的资料在 D:\destop\datatest.csv,我的R Script也需要放在 D:/destop/ 嘛?
2. 有什麽方式可以让我只要设定一次路径,将资料摆在同个资料夹方便import?
3. 为什麽常常看到 library(readxl),如果我要使用 read_excel 的 code
如
library(readxl)
C1_data <- read_excel("D:\\destop\\datatest.xlsx")
4. 什麽状况下 路径的slide要 \\ 或 / ?
5. 假设我要import/read的资料档案大小非常大,如下方 1.48 GB 的CSV (最主要的问题)
https://aqsdr1.epa.gov/aqsweb/aqstmp/airdata/hourly_44201_2016.zip 如连结
https://aqsdr1.epa.gov/aqsweb/aqstmp/airdata/annual_all_2016.zip <- 档案较小供作测试
有没有什麽方法可以让我只抓它特定的row and column (包含数字与字串)
如 我想要 import 所有的 data,但在
county.name的column里面只要有"cook","DuPage",
"Kane","Kenosha","Lake","McHenry","Porter","Will"的rows就好。
6. header的字串原本有
空白间距,import之後
空白变成
.
我之後在处理的时候要 打
. 还是
空白?
[程式范例]:
#----- Source:
https://aqsdr1.epa.gov/aqsweb/aqstmp/airdata/hourly_44201_2016.zip
# The followings are supposed to be the header of the data set
# 'State Code' 'County Code' 'Site Num' 'Parameter Code' 'POC'
# 'Latitude' 'Longitude' 'Datum' 'Parameter Name' 'Date Local'
# 'Time Local' 'Date GMT' 'Time GMT' 'Sample Measurement' 'Units of Measure'
# 'MDL' 'Uncertainty' 'Qualifier' 'Method Type' 'Method Code'
# 'Method Name' 'State Name' 'County Name' 'Date of Last Change'
Ozone <- read.csv("D:\\destop\\datatest.csv")
# import the data
# county.name contain "cook","DuPage","Kane","Kenosha","Lake","McHenry",
# "Porter","Will"
Ozone <- subset(Ozone, County.Name %in%
c("cook","DuPage","Kane","Kenosha","Lake","McHenry","Porter","Will"))
# 如何在import的时候就只读入这些:S
[环境叙述]:
R-studio
[关键字]:
read.csv
read_exel
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.92.13
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1492445728.A.44D.html
※ 编辑: peterwu76 (123.193.92.13), 04/18/2017 00:16:43
※ 编辑: peterwu76 (123.193.92.13), 04/18/2017 00:17:04
※ 编辑: peterwu76 (123.193.92.13), 04/18/2017 00:18:58
1F:推 Edster: 你可以打这麽多字描述问题, 也描述的都蛮准的. 何不google 04/18 00:26
2F:→ Edster: 1,2: 用相对路径, read_excel("./data.xlsx") 04/18 00:29
3F:→ Edster: 你开R script预设就会设定script在的folder为working dir 04/18 00:29
4F:→ andrew43: 查 getwd setwd 怎麽用 04/18 00:31
5F:→ Edster: 3,4:读excel在R中原本有很多种pkg,现在筛选到只剩几个常用 04/18 00:31
6F:→ andrew43: 预设wd不一定和script位置有关喔 04/18 00:32
7F:→ Edster: readxl是其中比较快的,同作者的read_csv相信对你也有帮助 04/18 00:32
8F:→ Edster: 回andrew,他看来是想要点开script就开始工作.这时是一样 04/18 00:33
9F:→ Edster: 4: R的路径把他想成网页就好, \已经被别的特殊字元用走 04/18 00:34
10F:→ Edster: 5, data$county.name %in% c("cook","DuPage",...) 04/18 00:36
11F:→ andrew43: 嗯?会不会和editor有关?还是误会你的意思了? 04/18 00:37
12F:→ peterwu76: 感谢两位前辈的解答!! 我1,2的问题真的太EASY,getwd 04/18 00:40
13F:→ peterwu76: 的概念我还要再想一下 04/18 00:40
14F:→ peterwu76: 5 的话我在试试看 04/18 00:41
15F:→ peterwu76: andew前辈,我是有点搞不清楚架构,如work dir 04/18 00:43
16F:→ peterwu76: andrew* sorry for the typo 04/18 00:44
17F:→ andrew43: wd在C槽下,可以方便取用C槽下的档案,如此而已。 04/18 00:46
18F:→ andrew43: 这时要取用D槽的档案,就要把路径写满,不能只是档名。 04/18 00:47
19F:→ andrew43: wd大概就是这样的意思。 04/18 00:47
20F:→ andrew43: 大概是太年轻没经历过dos的时代... :) 04/18 00:48
21F:→ peterwu76: 我看我哥他们使用dos,我负责玩游戏而已XD 04/18 00:49
22F:→ peterwu76: setwd("D:\\destop\\") 後,getwd设相同有意义嘛? 04/18 00:50
23F:→ peterwu76: getwd意思是跑出来的站存档所在的位置? 04/18 00:51
24F:→ andrew43: getwd是get the current wd,没有设定的意思喔。 04/18 00:59
25F:→ andrew43: 不能说「暂存」,但我觉得你大概懂了。 04/18 00:59
26F:→ peterwu76: 感谢adnrew前辈的指导!! 04/18 01:01
27F:→ peterwu76: andrew* sorry for the typo again... 04/18 01:01
28F:→ andrew43: 别在意. 04/18 01:02
29F:→ peterwu76: Thank you! =] 04/18 01:07
30F:→ peterwu76: data$county.name %in% c( ... 这个部分 我尝试加在 04/18 01:08
31F:→ peterwu76: read.csv("./daily_44201_2016.csv", data$county.name 04/18 01:08
32F:→ peterwu76: 後面,但 恩... 还要再多看看 04/18 01:09
33F:→ peterwu76: 如果要分行再写,似乎就要强迫读取1.5GB的档案了? 04/18 01:10
※ 编辑: peterwu76 (123.193.92.13), 04/18/2017 01:30:27
34F:→ andrew43: 读大档有很多「外挂」,但1.48GB还好。 04/18 02:02
35F:→ andrew43: 你先练习在R怎麽subset row/column。 04/18 02:04
36F:→ peterwu76: 1.48 GB居然可以读入,好神奇喔! 哈哈 04/18 02:24
37F:→ peterwu76: subset 就解决了! 谢谢前辈指导 04/18 02:25