有没有办法在多行中向Rscript -e
提供代码?
这在香草R中是可能的
R --vanilla <<code
a <- "hello\n"
cat(a)
code
但是使用Rscript
我会得到两个不同的东西,具体取决于R版本。
# R 3.0.2 gives two ignores
Rscript -e '
quote> a <- 3+3
quote> cat(a, "\n")
quote> '
# ARGUMENT 'cat(a,~+~"' __ignored__
# ARGUMENT '")' __ignored__
Rscript -e 'a <- 3+3;cat(a, "\n")'
# ARGUMENT '")' __ignored__
# R 2.15.3 gives an ignore for the multiline, but it works with semicolons
Rscript -e '
quote> a <- 3+3
quote> cat(a, "\n")
quote> '
# ARGUMENT 'cat(a,~+~"\n")' __ignored__
Rscript -e 'a <- 3+3;cat(a, "\n")'
6
我显然使用了错误的语法。这样做的正确方法是什么?
答案 0 :(得分:8)
更新:我认为问题是间距和引号。这工作(在Windows上):
Rscript -e "a <- 3+3; cat(a,'\n')"
6
在Mac上,您必须转义转义字符:
Rscript -e 'a <- 3+3; cat(a,"\\n")'
您也可以单独放置每个表达式。
Rscript -e "a <- 3+3" -e "cat(a)"