标签: rscript

Rscript:确定执行脚本的路径

我有一个名为的脚本foo.R包含另一个脚本other.R,该脚本位于同一目录中:

#!/usr/bin/env Rscript
message("Hello")
source("other.R")
Run Code Online (Sandbox Code Playgroud)

但我想R发现other.R无论当前的工作目录是什么.

换句话说,foo.R需要知道自己的路径.我怎样才能做到这一点?

r file path rscript r-faq

234
推荐指数
14
解决办法
11万
查看次数

将命令行参数传递给R CMD BATCH

我一直在使用R CMD BATCH my_script.R终端来执行R脚本.我现在正处于我想向命令传递一个参数的地步,但是我遇到了一些让它工作的问题.如果我这样做,R CMD BATCH my_script.R blablablabla成为输出文件,而不是被解释为正在执行的R脚本可用的参数.

我试过Rscript my_script.R blabla这似乎blabla正确地作为一个参数传递,但后来我没有得到我得到的my_script.Rout输出文件R CMD BATCH(我想要的.Rout文件).虽然我可以调用的输出重定向到Rscript我的选择的文件名,我就不会得到列入方式文件中的R输入命令R CMD BATCH是否在.Rout文件中.

所以,理想情况下,我正在采用一种方法将参数传递给通过该R CMD BATCH方法执行的R脚本,但是Rscript如果有一种方法可以使它生成一个类似的.Rout文件,那么会很满意.

r rscript

94
推荐指数
4
解决办法
11万
查看次数

为什么(或什么时候)Rscript(或更小)比R CMD BATCH更好?

我正在使用Rin 自动化一些webscraping,cron有时我使用R CMD BATCH,有时我使用Rscript.

决定使用哪一个我主要关注,如果我想要的.Rout文件.

但是在SO中读到一些问题的答案(比如这个或者这个)似乎Rscript是首选R CMD BATCH.

所以我的问题是:

  • 除了语法略有不同并且R CMD BATCH保存.Rout文件而不保存文件Rscript这两个事实之外,它们之间的主要区别是什么?

  • 我什么时候应该更喜欢一个?更具体地说,在cron上面提到的工作中,他们中的一个是首选吗?

  • 我还没有使用littler,它是如何从两个不同的RscriptR CMD BATCH

cron cmd r batch-file rscript

39
推荐指数
2
解决办法
9995
查看次数

捕获输出文件中的Rscript错误

R CMD BATCH默认生成输出文件的类似命令不同,该输出文件包含会导致脚本执行暂停的任何错误消息,我无法找到执行此操作的方法Rscript.我尝试在我的linux shell中使用管道来实现这个目的:

RScript --no-save --no-restore --verbose myRfile.R > outputFile.Rout
Run Code Online (Sandbox Code Playgroud)

但这只会覆盖错误发生之前发生的任何输出,因此该文件outputFile.R不包含任何错误信息.有谁知道如何使用RScript并将其保存到文件中捕获执行R文件时发生的任何错误?

linux r rscript

32
推荐指数
1
解决办法
1万
查看次数

Rscript:没有名为......的包?

我想使用Rscript以批处理模式运行R文件,但它似乎没有加载我需要的库.我得到的具体错误是:

Error in library(timeSeries) : there is no package called 'timeSeries'
Execution halted
Run Code Online (Sandbox Code Playgroud)

但是我确实有这个包timeSeries,可以从命令行从Rstudio,RGui和R加载它没问题.问题似乎只是在使用Rscript运行脚本时.

我的系统/环境变量配置为:

C:\Program Files\R\R-3.1.0\bin\x64 (Appended to PATH)
R_HOME = C:\Program Files\R\R-3.1.0
R_User = Patrick
Run Code Online (Sandbox Code Playgroud)

我从命令行在RStudio,RGui和R中运行相同版本的R. 我也.Library从这三个来源检查并得到了相同的输出.

如何从命令行运行Rscript与我在R中使用(并已安装)的软件包?

编辑:

Rscript script.r在目录所在的Windows命令行中使用Rscript via script.r.

输出Rscript -e print(.Library)[1] "C:/PROGRA~1/R/R-31~1.0/library"

这与我提到的其他三个选项一致: [1] "C:/PROGRA~1/R/R-31~1.0/library"

但是,如果我把它放在我的脚本中:

print(.libPaths()) 
library(timeSeries) #This is the package that failed to load
Run Code Online (Sandbox Code Playgroud)

我得到一个输出:

[1] "C:/Program Files/R/R-3.1.0/library"
Error in library(timeSeries) : there is no package called 'timeSeries'
Execution halted
Run Code Online (Sandbox Code Playgroud)

RStudio中的相应调用提供了实际安装包的其他路径: …

packages r rscript

27
推荐指数
2
解决办法
5万
查看次数

Rscript不加载方法包,R确实 - 为什么,后果是什么?

刚看到这个:

$ Rscript -e "sessionInfo()['basePkgs']"
$basePkgs
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "base"

$ R --vanilla --slave -e "sessionInfo()['basePkgs']"
$basePkgs
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
[7] "base"
Run Code Online (Sandbox Code Playgroud)

methods程序包似乎在运行时始终可用R,但不是Rscript.我怀疑这是为了获得性能,但除了显而易见之外还有任何实际意义吗?我问的是因为包装的存在与否而引发的一个有趣的错误methods.

r rscript

25
推荐指数
1
解决办法
3735
查看次数

R程序的Web界面

我必须开发一个Web界面,允许用户输入一些输入,这些输入将作为参数传递给Rscript并将结果返回给用户.

对于已经完成类似Web界面的人,我有一些问题:

  1. 使用哪个Web框架
  2. 什么是最简单的Web界面和Rscripts通信方式(在Web应用程序架构中)
  3. 我应该在服务器上安装R(如果是的话,如何从Web界面上安装Rscripts)

r rscript web

19
推荐指数
5
解决办法
3万
查看次数

如何传递Rscript -ea多行字符串?

有没有办法Rscript -e在多行中提供代码?

这在香草R中是可能的

R --vanilla <<code
a <- "hello\n"
cat(a)
code
Run Code Online (Sandbox Code Playgroud)

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 …
Run Code Online (Sandbox Code Playgroud)

stdin r rscript

17
推荐指数
1
解决办法
1538
查看次数

在R中打印与回声

我正在使用Rscript运行批处理.我想将消息打印到屏幕上就像bash中的"echo"一样.所以我使用"打印"功能.

问题是打印输出没有进入屏幕.它转到日志文件.有谁知道R中的echo相当于什么?

r echo batch-processing rscript

15
推荐指数
1
解决办法
2万
查看次数

Rscript无法找到功能

我需要通过bash shell运行几个脚本,Rscript并且我使用的一些函数需要该函数isGeneric.但是,在这种情况下,流程就像那样(例如):

Error in .getLogLik() : could not 
find function "isGeneric"
Calls: main -> dredge -> .getLik -> .getLogLik
Execution halted
Run Code Online (Sandbox Code Playgroud)

这可以如下再现

# in the bash shell
echo "isGeneric('apply')" > /tmp/test.R
Rscript /tmp/test.R
Run Code Online (Sandbox Code Playgroud)

结果:

Error: could not find function "isGeneric"
Execution halted
Run Code Online (Sandbox Code Playgroud)

但是,如果我们打开一个R会话并键入以下内容,它的工作原理如下:

# in the R shell
isGeneric('apply')
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

你知道问题的来源以及如何解决吗?

r rscript

14
推荐指数
1
解决办法
4391
查看次数

标签 统计

r ×10

rscript ×10

batch-file ×1

batch-processing ×1

cmd ×1

cron ×1

echo ×1

file ×1

linux ×1

packages ×1

path ×1

r-faq ×1

stdin ×1

web ×1