从Linux终端执行文件内容作为R下的命令

时间:2017-01-21 12:26:38

标签: r linux file terminal command

我已经写了一个包含R脚本的文本文件。我已经让它在Windows下运行一个运行.txt文件的.bat文件在CMD BATCH下运行。

我试图在终端中复制那个(减去可点击性)

我已经更改了程序执行的权限,我已将文件设置为shebang,并尝试重写一些不同的程序,例如

#!/usr/bin/R

library(rvest)

library(plyr)

返回错误"意外符号附近的语法错误' rvest'

#!/home/robert/Téléchargements/R-3.2.3/src/unix/Rscript.c

library(rvest)

library(plyr)

也会返回错误"意外符号附近的语法错误' rvest'

另外,在这两个方面,我将文件扩展名从无变为.R

在一个案例中它给出了相同的错误,另一个案例它启动了一个R的会话但没有执行命令。

我意识到这是一个混乱的问题,但我连接这些鸭子有困难。

1 个答案:

答案 0 :(得分:0)

最终,这是有效的:

R < /home/robert/R/scraper1.R --no-save

但是,如果对其他人不起作用,我的答案就是其余部分:

我不确定你是否已经看过这些,但这里有一些尝试:

DUPE?

来自a very similar post的最佳答案:我会假设你在发布之前用Google搜索了你的问题,所以我确定你已经看过这个问题了,但它&& #39;未在您的问题中引用,因此这里是[Source]:

script.r的内容:

#!/usr/bin/Rscript

cat("Hello")

从命令行调用:

./script.r

<小时/>

?RSCRIPT

?Rscript允许您在Unix-esque系统[Source]中运行R脚本:

    ## 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]:

  1. 将行R --vanilla < foo.txt foo.results放入名为 foo.batch 的文件中。文件中不应包含其他文本。

  2. 通过chmod 755 foo.batch

  3. 使此文件可执行
  4. 在命令行尝试at -f foo.batch now或者batch -f foo.batch

  5. 如果这不起作用,请询问系统管理员如何设置批处理。

  6. 批处理的优势是 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]