作者f496328mm (為什麼會流淚)
看板R_Language
標題[問題] read.table 多個sep 遺失值miss
時間Sun May 1 00:35:19 2016
問題一
我要讀的是筆記本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
→ andrew43: 先考慮 data.table package 的 data.table 和 fread 05/01 00:55
→ andrew43: 這在大資料有利,但還是要先解決各列不齊一的問題。 05/01 01:04
→ andrew43: 目前我覺得拆開各列來解似乎是不可必免的,因為在邏級上 05/01 01:07
→ andrew43: 判別哪個欄位要給NA是你來設計的。 05/01 01:09
→ andrew43: 所以核心問題可能變成怎麼有效率且穩健地整理大量字串。 05/01 01:10
感謝 這部分可能會直接擷取分號與分號中的字串 然後去比對
那問題一大大知道嗎?
當然也可以變成字串自己再去解開分號內的東西 只是感覺整個程式會變得很笨重
※ 編輯: f496328mm (220.137.162.5), 05/01/2016 01:25:25
→ andrew43: 第一個問題我想還是要先字串處理後再丟給現成func才行。 05/01 02:17
→ andrew43: 因為指定多於一個字符可能會很麻煩,所以主流func不做。 05/01 02:19
→ andrew43: 例如你很難精確地說"a b ;c; d"的結果是什麼。 05/01 02:21
→ andrew43: 所以我覺得指定reg expr自己切會簡單很多。 05/01 02:27