我正在使用bash
管道数据,Rscript
所以:
cat random.csv | Rscript test.R arg >| delete.csv
我的目标是使用R
包readr
来读取stdin和写stdout.我在这里找到了stdin的答案.
test.R
#!/usr/bin/Rscript
suppressMessages(library(readr))
args <- commandArgs(trailingOnly = TRUE)
df.in <- read_csv(file("stdin"))
write_csv(df.in, path = stdout())
Run Code Online (Sandbox Code Playgroud)
上面的代码在命令行中生成以下错误消息:
错误信息
Error in path.expand(path) : invalid 'path' argument
Calls: write_csv -> write_delim -> normalizePath -> path.expand
Execution halted
Run Code Online (Sandbox Code Playgroud)
我也试过write_csv(df.in, file("stdout"))
并write_csv(df.in, stdout())
生成相同的错误消息.
为了重现性,这里是一个链接 random.csv
m0n*_*awk 11
有一个format_csv
功能readr
.使用此代替write_csv
:
cat(format_csv(df.in))
Run Code Online (Sandbox Code Playgroud)