gpt4 book ai didi

使用 fread 读取对齐的列数据

转载 作者:行者123 更新时间:2023-12-04 15:21:05 27 4
gpt4 key购买 nike

我遇到了这样的文件:

COL1        COL2          COL3
weqw asrg qerhqetjw
weweg ethweth rqerhwrtjw
rhqerhqerhq qergqer qerhqew5h
qerh qergqer wetjwryerj

我无法直接使用 fread 加载它所以我更换了 \s+来自 ,sed比我给 fread 并解决了它。但是是否有一种内置的方式可以使用 data.table 读取此类数据? ?

最佳答案

fread(还)没有任何读取 fixed-width files 的能力。

我也经常遇到这样烦人的文件。随意在 Github page 上添加功能请求。

在您的情况下可能并非如此,但是您使用 sed 的解决方案在我遇到的很多 FWF 上都不起作用,因为列之间没有空格,例如你会看到像 00010 这样的字符串,它实际上包含 3 个字段。

如果是这种情况,您将需要一个字段宽度字典,此时您有几个选择:

  • read.fwf R
  • 编写 fwf -> csv 程序(我使用我在 Python 中编写的程序,它非常快,如果您愿意,可以共享代码)--基本上是初始方法的增强版本,因此您永远不必再次使用 FWF
  • 在 Excel/LibreOffice/等中打开;有一个 native FWF 阅读器会尝试(通常很糟糕)猜测列的宽度,它至少完成了为您指定列宽的一半工作。然后您可以将其另存为 .csv 或其他格式。

  • 我个人最常坚持第二种选择。 read.fwf 没有像 fread 那样优化,所以它可能会很慢。如果你有很多(比如 20+)的 FWF 需要阅读,第三个选项非常乏味。

    但我同意在 fread 中内置这样的东西会很好。

    关于使用 fread 读取对齐的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30955464/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com