我遇到了这样一个文件:
COL1 COL2 COL3
weqw asrg qerhqetjw
weweg ethweth rqerhwrtjw
rhqerhqerhq qergqer qerhqew5h
qerh qergqer wetjwryerj
Run Code Online (Sandbox Code Playgroud)
我不能直接加载它fread,所以我代替\s+通过,与sed比我给了FREAD并解决它.但有没有一种内置的方式来阅读这种数据data.table?
fread(尚)不具有读取固定宽度文件的任何功能。
我也经常遇到这样令人烦恼地存储的文件。请随意在Github 页面上添加功能请求。
在您的情况下可能并非如此,但您的解决方案不适sed用于我遇到的很多 FWF,因为列之间没有空格,例如您会看到像 00010 这样的字符串实际上包含 3 个字段。
如果是这种情况,您将需要一个字段宽度字典,此时您有多种选择:
read.fwf之内Rfwf->csv程序(我使用我编写的一个程序Python,它非常快,如果您愿意,可以共享代码)——基本上是您最初方法的增强版本,这样您就不必再次处理 FWF我个人最常坚持第二种选择。read.fwf没有像这样优化,fread所以它可能会很慢。如果你有很多(比如 20+)FWF 需要阅读,第三个选项就相当乏味了。
但我同意将这样的东西内置到fread.