[問題] (救回) 如何讀入多個CSV檔

看板R_Language作者 (天)時間9年前 (2016/11/20 14:53), 9年前編輯推噓0(0018)
留言18則, 3人參與, 最新討論串1/1
相關作者訊息已經遮蔽 想要請問一下 我嘗試使用在單一資料夾內有又不同資料夾 如wd 底下又有x, y, z x底下有 x1 x2 y有y1 y2 z有z1 我嘗試使用兩個list.files去讀取 setwd("C:/SASMACRO/data") data.files1 = list.files() data.files = list.files(path=data.files1,pattern="*.csv") 雖然data.files 可以得到所有個別的csv,分別為x1-z1 似乎都判斷為在x底下資料夾的路徑也就是 C:/SASMACRO/data/x/y1 這導致y1-z1無法在後續的merge的方式處理 要怎樣讓他可以判斷出對應csv的路徑為 C:/SASMACRO/data/x/x1 C:/SASMACRO/data/x/x2 C:/SASMACRO/data/y/y1 C:/SASMACRO/data/y/y2 C:/SASMACRO/data/z/z1 謝謝 另外以上file內檔案並非非常有邏輯,所以使用eval可能不是非常適合 -- ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1461567463.A.D78.html

04/25 15:44, , 1F
try: dir(pattern=".csv$", full.names=T, recursive=T)
04/25 15:44, 1F

04/25 15:45, , 2F
pattern是放標準表示式,而你的重點應該是recursive=T
04/25 15:45, 2F

04/25 16:01, , 3F
.要escape,不然有機會出問題,改成"\\.csv$",不確
04/25 16:01, 3F

04/25 16:01, , 4F
定這裡有沒有fixed這個參數可以加
04/25 16:01, 4F

04/25 16:02, , 5F
我平常都直接list.file接grepl. XD
04/25 16:02, 5F

04/25 16:03, , 6F
嗯對,多謝,不然就對應到亂七八糟的東西了。
04/25 16:03, 6F

04/25 16:41, , 7F
請問escape要寫在哪? 查了dir function 沒有看到的說
04/25 16:41, 7F

04/25 16:50, , 8F
直接把a大的那個pattern改成我那個就好
04/25 16:50, 8F

04/25 16:52, , 9F
在字串裡面加escape的意思是regexp裡面有一些字元有
04/25 16:52, 9F

04/25 16:52, , 10F
意義,必須用\去避免使用該意義,R裡面的字串,要表
04/25 16:52, 10F

04/25 16:52, , 11F
示\必須先escape他,所以要打\\
04/25 16:52, 11F

04/25 16:53, , 12F
這應該是R沒有原生regexp interpreter,直接傳到c做
04/25 16:53, 12F

04/25 16:53, , 13F
的緣故
04/25 16:53, 13F

04/25 17:12, , 14F
在標準表示式裡,"."是除了換行的任何一個字元,是
04/25 17:12, 14F

04/25 17:13, , 15F
有特別作用的,所以要跳脫。
04/25 17:13, 15F

04/25 17:14, , 16F
如果沒有跳脫,那"Dcsv"或" csv"都會符合,就不是你要的
04/25 17:14, 16F

04/25 17:14, , 17F
結果了。
04/25 17:14, 17F

04/25 17:42, , 18F
恩恩 謝謝
04/25 17:42, 18F
※ 編輯: celestialgod (36.233.51.224), 11/20/2016 14:58:03
文章代碼(AID): #1OCKXRao (R_Language)
文章代碼(AID): #1OCKXRao (R_Language)