data.table fread 可以接受连接吗?

Posted

技术标签:

【中文标题】data.table fread 可以接受连接吗?【英文标题】:Can data.table's fread accept connections? 【发布时间】:2015-10-02 07:03:28 【问题描述】:

我有一个可以使用system() 命令调用的可执行文件。这个可执行文件将打印一些数据,我可以使用管道将这些数据传输到 R 中:

read.csv(pipe(command))

fread 具有惊人的性能,我想利用引入数据的优势,但我不能使用fread(pipe(command))。另一种方法是使用可执行文件并将其输出转储到文件中,然后使用fread 将其读入。这样做需要将中间数据写入磁盘,并且还会通过引入该中间步骤来增加开销。有没有办法在我的可执行文件中包装或使用fread

【问题讨论】:

正如?fread 文档所述,您可以直接读取数据作为shell 命令的输出:input: a shell command that preprocesses the file (e.g. fread("grep blah filename"))。或者,在你的情况下,是这样的:fread(command)。它适用于您的情况吗? 绝对正确,这是一个糟糕的问题 【参考方案1】:

fread 目前无法建立连接,该功能已在 2015 年请求:https://github.com/Rdatatable/data.table/issues/561

尽管 Maksim 的评论是有效的,但它不能在 Windows 机器上运行。这在某些情况下可能会很麻烦。

【讨论】:

以上是关于data.table fread 可以接受连接吗?的主要内容,如果未能解决你的问题,请参考以下文章

data.table::fread 不喜欢第一列中的缺失值

使用包 data.table 中的 fread 一次读取块

来自 data.table 包的 fread 无法读取小数字

R data.table v1.9.6 中的错误 - 函数“fread”

使用 data.table (with fread) 快速读取和组合多个文件

R语言data.table导入数据实战:fread函数和read.csv函数时间效率对比