R - 在终端中使用用户输入文件

时间:2016-10-07 14:51:37

标签: r terminal user-input

我编写了一个简单的脚本,它将csv文件作为输入,执行一些操作,并返回一个txt文件。

1 bpseq <- read.csv(file = "/home/Desktop/bpseq.csv", header = FALSE)
2 names(bpseq) <- c("posi", "res", "posj") #bpseq has 3 columns
3 df <- data.frame(posi=integer(nrow(bpseq)),
4                 ...
5                 posj=character(nrow(bpseq)))
6 df$posi <- bpseq$posi
7 df$posj <- bpseq$posj
7 write.table(df, file = "/home/Desktop/bpseq_CLnotation.txt", col.names = F, row.names = F, sep = "\t")

这很好用,我可以使用“Rscript mybeautifulscript.R”在命令中成功运行它。

但我希望用户能够选择输入文件! 我当然试过了

bpseq <- read.csv(file.choose())

当我在RStudio中运行它时,它运行得很好,但我希望我的同事,对R不友好,能够在终端运行它。

从错误返回我知道file.choose()不是这样做的方法!该函数正在读取我的下一行代码,假设它是文件,当它是添加代码中的名称(bpseq),第2行时。

Nathalie写了一个很好的相关答案,在某些方面帮助了我,但我仍然不知道在命令行中获取用户输入文件的正确方法。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

发现它! 添加到我的代码行-1和0并更改前一段代码中的第1行:

-1 args <- commandArgs(trailingOnly = TRUE)
 0 fn <- args[1]
 1 bpseq <- read.csv(fn, header = FALSE) 

在终端中运行:

Rscript mybeautifulscript.R inputfile.csv