是否存在用于从stdin读取的fread模拟?

edd*_*ddi 9 linux r pipe data.table

我想fread在(R)脚本中使用,它将通过linux管道机制获取输入数据.以下是否有fread模拟?

read.csv(file = 'stdin', ...)
Run Code Online (Sandbox Code Playgroud)

我还会选择stdin其他方式阅读,然后使用fread它来解析它,因为我主要想要它fread的高级分隔符和标题逻辑.

edd*_*ddi 23

事实证明它很简单:

fread('file:///dev/stdin')
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为fread当前7个字符是"file://"或"http://"时,实际上会创建一个临时文件,并用于download.file复制那里的数据fread.


更新:版本1.8.11开始,可以使用shell命令fread,使另一个解决方案成为可能:

fread('cat /dev/stdin')
Run Code Online (Sandbox Code Playgroud)

  • +1因为我学到了新东西.有时我只是没有得到Stackoverflow,仍然不明白为什么那些downvotes,认真. (2认同)