我正在使用bash
通过Rscript
进行数据管道传输,方法如下:
cat random.csv | Rscript test.R arg >| delete.csv
我的目的是使用R
包中的readr
读取标准输入并写入标准输出。我在这里找到了有关标准输入的答案。
test.R
#!/usr/bin/Rscript
suppressMessages(library(readr))
args <- commandArgs(trailingOnly = TRUE)
df.in <- read_csv(file("stdin"))
write_csv(df.in, path = stdout())
上述代码在命令行产生以下错误信息:
错误信息
Error in path.expand(path) : invalid 'path' argument
Calls: write_csv -> write_delim -> normalizePath -> path.expand
Execution halted
我还尝试了write_csv(df.in, file("stdout"))
和write_csv(df.in, stdout())
,结果产生了相同的错误信息。
为了可重复性,这里提供一个random.csv
的链接。