r表示运行脚本或命令在UNIX解释器用于UNIX的门外汉(running r scripts or

2019-06-24 11:39发布

我是外行UNIX和SOFAR我在Windows中使用R上。 比如我在R对话键入以下(在读GUI)。

# this is a my funny example script 
X <- 1:10
Y <- 21:30
plot(X, Y)
myfun <- function (x){
              x1 <- x^0.2
              return (x1)
             }
myfun(X)

我怎样才能在UNIX shell中实现这一点,在两种情况 -

(1)直接在经由interpeter(2)创建脚本和脚本运行命令行。

请提供一步考虑到我是外行到UNIX。

Answer 1:

假设你保存你的脚本与名称的简单的文本文件so.R ,您可以通过键入Linux / Unix下运行R在提示符。 一旦R中输入

  source('so.R')

执行R环境里面的脚本(这是假设so.R文件在同一目录中,你是当发出这一命令)。

从Linux / UNIX命令行运行该脚本,使用下面的命令:

  R CMD BATCH so.R

请注意,我得到的情节展现,当我跑的R里面的脚本,但是从Linux命令行它并不显示。 我怀疑它就会迅速显示,然后消失,所以会出现,你必须仰望,使其暂停显示的情节后,R指令。



Answer 2:

如果你的程序将在一个单一的数据集工作,那么简单-R可能是解决方案:

http://code.google.com/p/simple-r/

它是专为简单的统计分析,Linux命令行的一部分。 例如,如果一个人想绘制一些数据,“R -p的data.txt”将做的工作; 为获得相关系数:“R COR data.txt中”就足够了。



Answer 3:

我从你的措辞你的问题,你也许SSH'ed到一台Linux机器的方式猜测? 或者你安装了Ubuntu,例如,你平时的笔记本电脑/ PC上。

假设这是第二种情况:打开一个终端,输入sudo apt-get install r-base 。 然后键入R 。 然后输入

X <- 1:10
Y <- 21:30
plot(X, Y)
myfun <- function (x){
              x1 <- x^0.2
              return (x1)
             }
myfun(X)

由于您的问题是关于unixlinux ,而不是R您也可以尝试http://unix.stackexchange.com 。 有很多可说的对Linux和UNIX之间的差异,但所有你可能需要知道的是: 下载Ubuntu的 ,它刻录到光盘,然后在您的CD驱动器中光盘重新启动计算机。

希望这可以帮助。



Answer 4:

下面的示例展示了两种方式来在shell脚本运行R代码里面。 这两个例子中还将定义功能而无需执行它们,如果脚本通过源极()函数加载到交互式R对话。

第一个例子可以让你给的参数,你会为任何其他shell脚本,但不会通过额外的R-选项R(因为RSCRIPT给“--args”,以R作为其中一个参数)。

第二个例子允许你给附加R-选项,但除非给“--args”作为脚本参数之一生成(无害)的警告消息。 这个版本是最好避免,除非你有特殊的要求。

原型Rscript.r

#!/usr/bin/env Rscript
# Prototype R script for use at command line in Linux, Mac OS X, UNIX

# References:
#   Manual "A Introduction to R", available via help.start() from the R Console
#   Appendix "B.1 Invoking R from the command line" in "A Inroduction to R",

showArguments <- function(argv)  {
    print(argv)
    0
}

if ( ! interactive() )  {
    # set some error return codes
    SCRIPT_ERROR <- 10                      # see documentation for quit()
    SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1

    # Define ARGV as script path concatenated to script arguments
    ARGV <- commandArgs(FALSE)          # start with all the arguments given to R
    scriptPath <- sub("^--file=", "", grep("^--file=", ARGV, value=TRUE)) [[1]]
    ARGV <- c(scriptPath, commandArgs(TRUE))

    if (length(ARGV) < 2)   {
        cat(file=stderr(), sep="",
            "Usage: ", ARGV[[1]], " [ options ] item ...\n",
            "       Do something with item\n",
            "       See script for details\n")
        quit(save="no", status=SCRIPT_ARG_ERROR)
    }
    quit(save="no", status=showArguments(ARGV))
}

原型shellscript.r

#!/usr/bin/env R --slave --vanilla --quiet -f
# Prototype R script for use at command line in Linux, Mac OS X, UNIX

# References:
#   Manual "A Introduction to R", available via help.start() from the R Console
#   Appendix "B.1 Invoking R from the command line" in "A Inroduction to R",

showArguments <- function(argv)  {
    print(argv)
    0
}

if ( ! interactive() )  {
    # set some error return codes
    SCRIPT_ERROR <- 10                      # see documentation for quit()
    SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1

    # Define ARGV as the arguments given to this script (after argument “-f”)
    ARGV <- commandArgs(FALSE)          # start with all the arguments given to R
    ARGV <- ARGV[(grep("-f", ARGV) [[1]] + 1):length(ARGV)]
    if ( any(grepl("--args", ARGV) ))   {   # remove arguments intended only for R
        ARGV <- c(ARGV[[1]], commandArgs(TRUE))
    }

    if (length(ARGV) < 2)   {
        cat(file=stderr(), sep="",
            "Usage: ", ARGV[[1]], " [ R_options ] --args [ options ] item ...\n",
            "       Do something with item\n",
            "       See script for details\n")
        quit(save="no", status=SCRIPT_ARG_ERROR)
    }
    quit(save="no", status=showArguments(ARGV))
}


文章来源: running r scripts or commands with interpretor in unix for unix-layman
标签: linux r shell unix