Подтвердить что ты не робот

Запуск r скриптов или команд с интерпретатором в unix для unix-layman

Я непрофессионал для unix и sofar Я использую R в окнах. Например, я печатаю следующее в моей сессии 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, в двух ситуациях -

(1) непосредственно в командной строке через интерпретатор (2) создание script и запуск script.

Пожалуйста, предоставьте шаг, считая, что я непрофессионал для unix.

4b9b3361

Ответ 1

Предполагая, что вы сохраните script в простом текстовом файле с именем so.R, вы можете запустить его под Linux/Unix, введя R в командной строке. После входа в R введите

  source('so.R')

для выполнения script внутри среды R (предполагается, что файл so.R находится в том же каталоге, что и при выдаче этой команды).

Для запуска script из командной строки Linux/Unix используйте следующую команду:

  R CMD BATCH so.R

Обратите внимание, что я получил график, чтобы показать, когда я запускал script внутри R, но из командной строки Linux он не отображается. Я подозреваю, что он быстро отображается, а затем уходит, поэтому будет команда R, которую вы должны посмотреть, чтобы сделать паузу после отображения графика.

Ответ 2

Я угадываю, как вы сформулировали свой вопрос, что вы, возможно, SSH'ed в Linux-машину? Или что вы установили Ubuntu, например, на свой обычный ноутбук/ПК.

Предположим, что это второй случай: откройте терминал и введите 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)

Поскольку ваш вопрос о unix versus linux, а не R, вы также можете попробовать http://unix.stackexchange.com. Можно многое сказать о различиях между linux и unix, но все, что вам, вероятно, нужно знать, это: загрузить Ubuntu, записать его на диск, затем перезагрузите компьютер с помощью диска на вашем CD-диске.

Надеюсь, что это поможет.

Ответ 3

Если ваша программа будет работать с одним набором данных, то простой-r может быть решением:

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

Он специально разработан для простого статистического анализа как части командной строки Linux. Например, если вы хотите построить некоторые данные, "r -p data.txt" выполнит задание; для получения коэффициента корреляции: 'r cor data.txt' будет достаточно.

Ответ 4

В приведенных ниже примерах показаны два способа запуска R-кода в оболочке script. И то и другое примеры также будут определять функции без их выполнения, если скрипты загружается в интерактивный сеанс R через функцию source().

Первый пример позволяет вам приводить аргументы так же, как и к любой другой оболочке script, но не будет передавать дополнительные R-опции в R (поскольку Rscript дает "--args" в R в качестве одного из аргументов).

Второй пример позволяет вам предоставить дополнительные R-параметры, но генерирует (безвредных) предупреждений, если вы не дадите "--args" как один из script аргументы. Эта версия лучше всего избегать, если у вас нет особых требований.

прототипы 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))
}