How can I suppress the line numbers output using R CMD BATCH?

匿名 (未验证) 提交于 2019-12-03 03:04:01

问题:

If I have an R script:

print("hi") commandArgs()

And I run it using:

r CMD BATCH --slave --no-timing test.r output.txt

The output will contain:

[1] "hi" [1] "/Library/Frameworks/R.framework/Resources/bin/exec/x86_64/R" [2] "-f"                                                          [3] "test.r"                                                      [4] "--restore"                                                   [5] "--save"                                                      [6] "--no-readline"                                               [7] "--slave"                                                    

How can i suppress the line numbers[1]..[7] in the output so only the output of the script appears?

回答1:

Yes, mbq is right -- use Rscript, or, if it floats your boat, littler:

$ cat /tmp/tommy.r  #!/usr/bin/r  cat("hello world\n") print(argv[]) $ /tmp/tommy.r a b c hello world [1] "a" "b" "c" $

You probably want to look at CRAN packages getopt and optparse for argument-parsing as you'd do in other scripting languages/



回答2:

Use cat instead of print if you want to suppress the line numbers ([1], [2], ...) in the output.

I think you are also going to want to pass command line arguments. I think the easiest way to do that is to create a file with the RScript shebang:

For example, create a file called args.r:

#!/usr/bin/env Rscript args <- commandArgs(TRUE) cat(args, sep = "\n")

Make it executable with chmod +x args.r and then you can run it with ./args.r ARG1 ARG2

FWIW, passing command line parameters with the R CMD BATCH ... syntax is a pain. Here is how you do it: R CMD BATCH "--args ARG1 ARG2" args.r Note the quotes. More discussion here

UPDATE: changed shebang line above from #!/usr/bin/Rscript to #!/usr/bin/env Rscript in response to @mbq's comment (thanks!)



回答3:

Use commandArgs(TRUE) and run your script with Rscript.

EDIT: Ok, I've misread your question. David has it right.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!