[問題] 想利用data.table將Rawdata切割欄位

看板R_Language作者 (羽毛)時間9年前 (2015/02/22 00:27), 編輯推噓2(2013)
留言15則, 3人參與, 最新討論串1/4 (看更多)
文章分類提示: - 問題: 當你想要問問題時,請使用這個類別 [問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 各位前輩們好, 小弟有一筆資料大約為500MB左右, 因這筆資料為原始檔案, 還沒將欄位定義好, 所以小弟想詢問如何讀入data.table後, 在將欄位進行切割? example: var1 1 001female 2019920404 2 002male 3019920505 3 003male 4019920606 4 004female 5019920707 希望可以透過欄位切割後變成: id sex income birthday 1 001 female 20 19920404 2 002 male 30 19920505 3 003 male 40 19920606 4 004 female 50 19920707 再版上及google爬不到相關情形, 所以上來版上請教一下前輩, 謝謝! [關鍵字]: data.table , width -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.19.197 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1424536059.A.1D6.html

02/22 00:45, , 1F
你熟悉regular expression嗎?
02/22 00:45, 1F

02/22 00:46, , 2F
另外,如果只靠字元數判斷,可靠嗎?
02/22 00:46, 2F

02/22 01:00, , 3F
因為他有自己的codebook 字元數他們已經設定好了! re
02/22 01:00, 3F

02/22 01:00, , 4F
gular expressions 我目前還不清楚 ><
02/22 01:00, 4F

02/22 08:56, , 5F
不知道strsplit可不可以用?
02/22 08:56, 5F

02/22 12:42, , 6F
沒意外的話,此例以正規表達式解決滿單純的。
02/22 12:42, 6F

02/22 15:47, , 7F
耶,id就取前三字元,sex就判斷有沒有"male"即可,
02/22 15:47, 7F

02/22 15:47, , 8F
生日就取最後8字元,income就"e"之後到倒數第9字元。
02/22 15:47, 8F

02/22 15:48, , 9F
這樣的規則夠不夠強韌?可以的話就可以下手了。
02/22 15:48, 9F

02/22 15:55, , 10F
sex就判斷有沒有"female"即可。
02/22 15:55, 10F

02/22 20:39, , 11F
substr, regexpr就可以達成了
02/22 20:39, 11F

02/23 17:03, , 12F
感謝各位前輩幫忙,但是資料有2000萬多Row
02/23 17:03, 12F

02/23 17:04, , 13F
分割出來的欄位也有10個以上,發現用substr執行速度
02/23 17:04, 13F

02/23 17:05, , 14F
相當的慢,還在苦惱中~
02/23 17:05, 14F

02/23 20:26, , 15F
用 Rcpp加速吧QQ..
02/23 20:26, 15F
文章代碼(AID): #1KwB7x7M (R_Language)
文章代碼(AID): #1KwB7x7M (R_Language)