Answers:
如果要将输出打印到终端,最好使用Rscript
Rscript a.R
请注意,使用R CMD BATCH a.R
该方法而不是将输出重定向到标准输出并在终端上显示时,将创建一个名为a.Rout的新文件。
R CMD BATCH a.R
# Check the output
cat a.Rout
使用Rscript时要注意的另一件事是,methods
默认情况下它不会加载该程序包,这可能会引起混乱。因此,如果您依赖方法提供的任何内容,则需要在脚本中显式加载它。
如果您确实想使用./a.R
调用脚本的方式,则可以#!
在脚本顶部添加一个适当的名称
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
我还将注意到,如果您在* unix系统上运行,则有一个有用的littler软件包,该软件包可为R提供简单的命令行管道。可能需要使用littler通过脚本运行闪亮的应用程序吗?进一步的细节可以在这个问题中找到。
R CMD BATCH
很糟糕。除了那个...
R CMD INSTALL -l ~/R/lib-dev
这不能直接回答问题。但是可能有人会在这里结束,因为他们想从终端运行R的oneliner。例如,如果您只想安装一些缺少的软件包并退出,则此oneliner会非常方便。当我突然发现我错过了一些软件包,并且想将它们安装到我想要的地方时,我经常使用它。
要安装到默认位置:
R -e 'install.packages(c("package1", "package2"))'
要安装到需要root
特权的位置:
R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")'
Rscript -e "getwd()"
在终端中使用。Rscript将仅显示命令输出,而不显示完整的R启动消息。
r -e "cat(getwd(),'\n')"
如果安装了Littler,也可以使用。在此答案中, Dirk Eddelbuettel解释了littler和Rscript之间的区别。
R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
如果安装失败,应使用此命令停止执行并获得非零的错误代码。否则,任何install.packages
错误都只是警告。
您需要?Rscript
命令从终端运行R脚本。
查看http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
例
## example #! script for a Unix-alike
#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()
如何通过多个命令在带有knitr和rmarkdown的命令中运行Rmd,然后将HTML文件上传到RPubs
这是一个示例:加载两个库并运行R命令
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
在* Unix系统上使用Rscript的另一种方法是Process Substitution。
Rscript <(zcat a.r)
# [1] "hello"
显然,它与接受的答案相同,但这使您可以在不保存命令行功能的情况下操纵和运行文件,例如:
Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"
与此类似,Rscript -e "Rcode"
它还允许运行时不保存到文件中。因此,它可以与生成R代码的脚本结合使用,例如:
Rscript <(echo "head(iris,2)")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa