Tôi đang sử dụng bash
số liệu ống thông qua một Rscript
như vậy: cat random.csv | Rscript test.R arg >| delete.csv
Có thể viết stdout bằng write_csv() từ readr không?
Mục tiêu của tôi là sử dụng R
gói readr
cho cả đọc stdin và stdout viết. Tôi đã tìm thấy số answer to stdin here.
test.R
#!/usr/bin/Rscript
suppressMessages(library(readr))
args <- commandArgs(trailingOnly = TRUE)
df.in <- read_csv(file("stdin"))
write_csv(df.in, path = stdout())
Đoạn mã trên tạo ra thông báo lỗi sau tại cửa sổ dòng lệnh:
Thông báo lỗi
Error in path.expand(path) : invalid 'path' argument
Calls: write_csv -> write_delim -> normalizePath -> path.expand
Execution halted
Tôi cũng đã cố gắng write_csv(df.in, file("stdout"))
và write_csv(df.in, stdout())
sản xuất cùng một thông báo lỗi.
Đối lặp lại, đây là một liên kết đến một random.csv
Definition of variables, by WHO for the Global Tuberculosis Report [43kb]
Cảm ơn @ m0nhawk - đây là rất gần. Thông báo lỗi không còn xuất hiện nữa. Tuy nhiên, 'delete.csv' có tất cả dữ liệu được in trên một hàng khi có nhiều hàng. Nếu bạn quấn câu trả lời của bạn với 'cat()', kết quả là đúng về số tiền. ví dụ. 'cat (format_csv (df.in))'. Cập nhật và tôi sẽ chấp nhận câu trả lời của bạn. –