看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/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
Edster: 你可以打這麼多字描述問題, 也描述的都蠻準的. 何不google 04/18 00:26
Edster: 1,2: 用相對路徑, read_excel("./data.xlsx") 04/18 00:29
Edster: 你開R script預設就會設定script在的folder為working dir 04/18 00:29
andrew43: 查 getwd setwd 怎麼用 04/18 00:31
Edster: 3,4:讀excel在R中原本有很多種pkg,現在篩選到只剩幾個常用 04/18 00:31
andrew43: 預設wd不一定和script位置有關喔 04/18 00:32
Edster: readxl是其中比較快的,同作者的read_csv相信對你也有幫助 04/18 00:32
Edster: 回andrew,他看來是想要點開script就開始工作.這時是一樣 04/18 00:33
Edster: 4: R的路徑把他想成網頁就好, \已經被別的特殊字元用走 04/18 00:34
Edster: 5, data$county.name %in% c("cook","DuPage",...) 04/18 00:36
andrew43: 嗯?會不會和editor有關?還是誤會你的意思了? 04/18 00:37
peterwu76: 感謝兩位前輩的解答!! 我1,2的問題真的太EASY,getwd 04/18 00:40
peterwu76: 的概念我還要再想一下 04/18 00:40
peterwu76: 5 的話我在試試看 04/18 00:41
peterwu76: andew前輩,我是有點搞不清楚架構,如work dir 04/18 00:43
peterwu76: andrew* sorry for the typo 04/18 00:44
andrew43: wd在C槽下,可以方便取用C槽下的檔案,如此而已。 04/18 00:46
andrew43: 這時要取用D槽的檔案,就要把路徑寫滿,不能只是檔名。 04/18 00:47
andrew43: wd大概就是這樣的意思。 04/18 00:47
andrew43: 大概是太年輕沒經歷過dos的時代... :) 04/18 00:48
peterwu76: 我看我哥他們使用dos,我負責玩遊戲而已XD 04/18 00:49
peterwu76: setwd("D:\\destop\\") 後,getwd設相同有意義嘛? 04/18 00:50
peterwu76: getwd意思是跑出來的站存檔所在的位置? 04/18 00:51
andrew43: getwd是get the current wd,沒有設定的意思喔。 04/18 00:59
andrew43: 不能說「暫存」,但我覺得你大概懂了。 04/18 00:59
peterwu76: 感謝adnrew前輩的指導!! 04/18 01:01
peterwu76: andrew* sorry for the typo again... 04/18 01:01
andrew43: 別在意. 04/18 01:02
peterwu76: Thank you! =] 04/18 01:07
peterwu76: data$county.name %in% c( ... 這個部分 我嘗試加在 04/18 01:08
peterwu76: read.csv("./daily_44201_2016.csv", data$county.name 04/18 01:08
peterwu76: 後面,但 恩... 還要再多看看 04/18 01:09
peterwu76: 如果要分行再寫,似乎就要強迫讀取1.5GB的檔案了? 04/18 01:10
※ 編輯: peterwu76 (123.193.92.13), 04/18/2017 01:30:27
andrew43: 讀大檔有很多「外掛」,但1.48GB還好。 04/18 02:02
andrew43: 你先練習在R怎麼subset row/column。 04/18 02:04
peterwu76: 1.48 GB居然可以讀入,好神奇喔! 哈哈 04/18 02:24
peterwu76: subset 就解決了! 謝謝前輩指導 04/18 02:25