[问题] import/read csv/xls file (large data file)

楼主: peterwu76 (金冈)   2017-04-18 00:15:21
[问题类型]:
程式咨询(我想用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之后空白变成 .
我之后在处理的时候要 打 . 还是 空白?
[程式范例]:
#
作者: Edster (Edster)   2017-04-18 00:26:00
你可以打这么多字描述问题, 也描述的都蛮准的. 何不google1,2: 用相对路径, read_excel("./data.xlsx")你开R script默认就会设定script在的folder为working dir
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 00:31:00
查 getwd setwd 怎么用
作者: Edster (Edster)   2017-04-18 00:31:00
3,4:读excel在R中原本有很多种pkg,现在筛选到只剩几个常用
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 00:32:00
默认wd不一定和script位置有关喔
作者: Edster (Edster)   2017-04-18 00:32:00
readxl是其中比较快的,同作者的read_csv相信对你也有帮助回andrew,他看来是想要点开script就开始工作.这时是一样4: R的路径把他想成网页就好, \已经被别的特殊字符用走5, data$county.name %in% c("cook","DuPage",...)
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 00:37:00
嗯?会不会和editor有关?还是误会你的意思了?
楼主: peterwu76 (金冈)   2017-04-18 00:40:00
感谢两位前辈的解答!! 我1,2的问题真的太EASY,getwd的概念我还要再想一下5 的话我在试试看andew前辈,我是有点搞不清楚架构,如work dirandrew* sorry for the typo
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 00:46:00
wd在C槽下,可以方便取用C槽下的档案,如此而已。这时要取用D槽的档案,就要把路径写满,不能只是档名。wd大概就是这样的意思。大概是太年轻没经历过dos的时代... :)
楼主: peterwu76 (金冈)   2017-04-18 00:49:00
我看我哥他们使用dos,我负责玩游戏而已XDsetwd("D:\\destop\\") 后,getwd设相同有意义嘛?getwd意思是跑出来的站存盘所在的位置?
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 00:59:00
getwd是get the current wd,没有设定的意思喔。不能说“暂存”,但我觉得你大概懂了。
楼主: peterwu76 (金冈)   2017-04-18 01:01:00
感谢adnrew前辈的指导!!andrew* sorry for the typo again...
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 01:02:00
别在意.
楼主: peterwu76 (金冈)   2017-04-18 01:07:00
Thank you! =]data$county.name %in% c( ... 这个部分 我尝试加在read.csv("./daily_44201_2016.csv", data$county.name后面,但 恩... 还要再多看看如果要分行再写,似乎就要强迫读取1.5GB的档案了?
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-18 02:02:00
读大档有很多“外挂”,但1.48GB还好。你先练习在R怎么subset row/column。
楼主: peterwu76 (金冈)   2017-04-18 02:24:00
1.48 GB居然可以读入,好神奇喔! 哈哈subset 就解决了! 谢谢前辈指导

Links booklink

Contact Us: admin [ a t ] ucptt.com