[問題] read.table 多個sep 遺失值miss

看板R_Language作者 (為什麼會流淚)時間9年前 (2016/05/01 00:35), 9年前編輯推噓0(009)
留言9則, 1人參與, 最新討論串1/2 (看更多)
問題一 我要讀的是筆記本txt檔 檔案太大無法先用excel處理 我的分隔符號有多個 請問要怎麼寫?? 我的code read.table("d:\\xxx.txt" ,sep=";", fill=T, quote="") 我想要用 ; 和 空格 當作分隔符號 未來可能再增加 ========================================================== 問題二 我的資料中 有些地方沒有值 所以當初在存的時候就直接忽略 連空白都沒留 像這樣: sam;16;boy; 2015:00:09:59 green;18;gril paul;20; 2015:00:09:59 第一行是name 第二行是age 第三行是性別 但是paul沒有記錄到 所以直接記錄到第四行的time green的time也沒記錄到 想問有沒有什麼方法解決 我目前只想到比較笨的方法 給它特定範圍去判斷 像性別不是boy就是gril 出現其他就給他NA 還有 這樣讀資料也會因為每列資料col都不一樣 有的時候會出現問題 是可以讀成文字再去慢慢拆開 不過有點笨就是了 最後想問如果讀資料量上百萬筆 還是用read.table嗎? 有沒有比較好的函數專門處理large data? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.162.5 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1462034121.A.29E.html

05/01 00:55, , 1F
先考慮 data.table package 的 data.table 和 fread
05/01 00:55, 1F

05/01 01:04, , 2F
這在大資料有利,但還是要先解決各列不齊一的問題。
05/01 01:04, 2F

05/01 01:07, , 3F
目前我覺得拆開各列來解似乎是不可必免的,因為在邏級上
05/01 01:07, 3F

05/01 01:09, , 4F
判別哪個欄位要給NA是你來設計的。
05/01 01:09, 4F

05/01 01:10, , 5F
所以核心問題可能變成怎麼有效率且穩健地整理大量字串。
05/01 01:10, 5F
感謝 這部分可能會直接擷取分號與分號中的字串 然後去比對 那問題一大大知道嗎? 當然也可以變成字串自己再去解開分號內的東西 只是感覺整個程式會變得很笨重 ※ 編輯: f496328mm (220.137.162.5), 05/01/2016 01:25:25

05/01 02:17, , 6F
第一個問題我想還是要先字串處理後再丟給現成func才行。
05/01 02:17, 6F

05/01 02:19, , 7F
因為指定多於一個字符可能會很麻煩,所以主流func不做。
05/01 02:19, 7F

05/01 02:21, , 8F
例如你很難精確地說"a b ;c; d"的結果是什麼。
05/01 02:21, 8F

05/01 02:27, , 9F
所以我覺得指定reg expr自己切會簡單很多。
05/01 02:27, 9F
文章代碼(AID): #1N9Dx9AU (R_Language)
文章代碼(AID): #1N9Dx9AU (R_Language)