[问题] 想利用data.table将Rawdata切割字段

楼主: squallscer (羽毛)   2015-02-22 00:27:36
文章分类提示:
- 问题: 当你想要问问题时,请使用这个类别
[问题类型]:
程式咨询(我想用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
作者: andrew43 (讨厌有好心推文后删文者)   2015-02-22 00:45:00
你熟悉regular expression吗?另外,如果只靠字符数判断,可靠吗?
楼主: squallscer (羽毛)   2015-02-22 01:00:00
因为他有自己的codebook 字符数他们已经设定好了! regular expressions 我目前还不清楚 ><
作者: celestialgod (天)   2015-02-22 08:56:00
不知道strsplit可不可以用?
作者: andrew43 (讨厌有好心推文后删文者)   2015-02-22 12:42:00
没意外的话,此例以正规表达式解决满单纯的。耶,id就取前三字符,sex就判断有没有"male"即可,生日就取最后8字符,income就"e"之后到倒数第9字符。这样的规则够不够强韧?可以的话就可以下手了。sex就判断有没有"female"即可。
作者: celestialgod (天)   2015-02-22 20:39:00
substr, regexpr就可以达成了
楼主: squallscer (羽毛)   2015-02-23 17:03:00
感谢各位前辈帮忙,但是资料有2000万多Row分割出来的字段也有10个以上,发现用substr执行速度相当的慢,还在苦恼中~
作者: celestialgod (天)   2015-02-23 20:26:00
用 Rcpp加速吧QQ..

Links booklink

Contact Us: admin [ a t ] ucptt.com