从 Linux 终端在 R 下将文件内容作为命令执行
executing file contents as commands under R from Linux terminal
我已经编写了一个包含 R 脚本的文本文件。我已经从 .bat 文件 运行ning 下的 .txt 文件中将其发送到 Windows 下的 运行带有 CMD BATCH 的 R。
我正在尝试在终端中复制它(减去可点击性)
我已经更改了程序执行的权限,我已经将文件设置为具有 shebang,并尝试为它重写几个不同的程序,例如
#!/usr/bin/R
library(rvest)
library(plyr)
其中 returns 错误“意外符号附近的语法错误 'rvest'
和
#!/home/robert/Téléchargements/R-3.2.3/src/unix/Rscript.c
library(rvest)
library(plyr)
这也是 returns 错误“意外符号附近的语法错误 'rvest'
另外,我将文件扩展名从无更改为 .R
在一种情况下它给出了同样的错误,在另一种情况下它启动了 R 会话但没有执行命令。
我意识到这是一个混乱的问题,但我很难把这些鸭子排成一行。
最终,这是有效的:
R < /home/robert/R/scraper1.R --no-save
但这是我的其余答案,以防对其他人不起作用:
我不确定你是否看过这些,但这里有一些东西可以尝试:
骗人?
来自a very similar post: I'm going to assume you googled your question before posting it, so I'm sure you've already seen this, but it's not referenced in your question, so here it is [Source]的最佳答案:
script.r的内容:
#!/usr/bin/Rscript
cat("Hello")
从命令行调用:
./script.r
?Rscript
?Rscript
allows you to run R scripts in a Unix-esque system [Source]:
## 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()
批量
这是来自旧 R 邮件管道的内容 [Source]:
将行:R --vanilla < foo.txt foo.results
放入名为 foo.batch 的文件中。文件中不应包含其他文本。
通过chmod 755 foo.batch
使这个文件可执行
在命令行尝试 at -f foo.batch now
或者 batch -f foo.batch
。
如果这不起作用,请询问您的系统管理员如何设置批处理。
批处理的优点是1.不需要登录,2.
您的作业的优先级低于交互式作业。
R-e
加载两个库和运行一个R命令[Source]
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
其他
R < scriptname.R --no-save
[Source]
$ source("scriptname.R")
[Source]
我已经编写了一个包含 R 脚本的文本文件。我已经从 .bat 文件 运行ning 下的 .txt 文件中将其发送到 Windows 下的 运行带有 CMD BATCH 的 R。
我正在尝试在终端中复制它(减去可点击性)
我已经更改了程序执行的权限,我已经将文件设置为具有 shebang,并尝试为它重写几个不同的程序,例如
#!/usr/bin/R
library(rvest)
library(plyr)
其中 returns 错误“意外符号附近的语法错误 'rvest'
和
#!/home/robert/Téléchargements/R-3.2.3/src/unix/Rscript.c
library(rvest)
library(plyr)
这也是 returns 错误“意外符号附近的语法错误 'rvest'
另外,我将文件扩展名从无更改为 .R
在一种情况下它给出了同样的错误,在另一种情况下它启动了 R 会话但没有执行命令。
我意识到这是一个混乱的问题,但我很难把这些鸭子排成一行。
最终,这是有效的:
R < /home/robert/R/scraper1.R --no-save
但这是我的其余答案,以防对其他人不起作用:
我不确定你是否看过这些,但这里有一些东西可以尝试:
骗人?
来自a very similar post: I'm going to assume you googled your question before posting it, so I'm sure you've already seen this, but it's not referenced in your question, so here it is [Source]的最佳答案:
script.r的内容:
#!/usr/bin/Rscript
cat("Hello")
从命令行调用:
./script.r
?Rscript
?Rscript
allows you to run R scripts in a Unix-esque system [Source]:
## 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()
批量
这是来自旧 R 邮件管道的内容 [Source]:
将行:
R --vanilla < foo.txt foo.results
放入名为 foo.batch 的文件中。文件中不应包含其他文本。通过
chmod 755 foo.batch
使这个文件可执行
在命令行尝试
at -f foo.batch now
或者batch -f foo.batch
。如果这不起作用,请询问您的系统管理员如何设置批处理。
批处理的优点是1.不需要登录,2. 您的作业的优先级低于交互式作业。
R-e
加载两个库和运行一个R命令[Source]
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
其他
R < scriptname.R --no-save
[Source]$ source("scriptname.R")
[Source]