[問題] 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