[问题] read.table 多个sep 遗失值miss

楼主: f496328mm (为什么会流泪)   2016-05-01 00:35:19
问题一
我要读的是笔记本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?
谢谢
作者: andrew43 (讨厌有好心推文后删文者)   2016-05-01 00:55:00
先考虑 data.table package 的 data.table 和 fread这在大资料有利,但还是要先解决各列不齐一的问题。目前我觉得拆开各列来解似乎是不可必免的,因为在逻级上判别哪个字段要给NA是你来设计的。所以核心问题可能变成怎么有效率且稳健地整理大量字串。第一个问题我想还是要先字串处理后再丢给现成func才行。因为指定多于一个字符可能会很麻烦,所以主流func不做。例如你很难精确地说"a b ;c; d"的结果是什么。所以我觉得指定reg expr自己切会简单很多。

Links booklink

Contact Us: admin [ a t ] ucptt.com