Вопрос по linux, r, shell, unix – запуск r скриптов или команд с интерпретатором в unix для unix-layman

13

Я дилетант Unix и смягчить Я использую R в 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) непосредственно в командной строке через интерпретатор (2) создание сценария и запуск сценария.

Пожалуйста, предоставьте шаг, учитывая, что я являюсь дилером в Unix.

Извините за простой вопрос, в чем разница между Linux и Unix R? Я считаю, что мы можем запустить R в Unix SHRram
Может быть, вы должны использовать R для Linux? Burton Samograd
Что вы пробовали? R должен хорошо устанавливаться на Unix или Linux, и вы можете получить к нему доступ через командную строку сR, Вы также можете взглянуть на некоторые из отличных доступных гис (я бы посоветовалRStudio как отличная отправная точка). Наконец, запуск сценария может быть легко выполнен. Часто вы используетеR CMD BATCH script.R но есть много альтернатив и вариантов, которые хорошо документированы. Justin
Я предлагаю вам пройти черезR documentation, Там у вас есть хорошие инструкции дляinstallation и, например,scripting. Maehler

Ваш Ответ

4   ответа
25

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

  source('so.R')

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

Чтобы запустить скрипт из командной строки Linux / Unix, используйте следующую команду:

  R CMD BATCH so.R

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

Error: User Rate Limit ExceededRscriptError: User Rate Limit ExceededrError: User Rate Limit ExceededR CMD BATCHError: User Rate Limit Exceeded
1

как вы сформулировали свой вопрос, я догадываюсь, что вы, возможно, SSH подключили к 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 противlinux скорее, чемRВы также можете попробоватьhttp://unix.stackexchange.com, Существует много сказать о различиях между Linux и Unix, но все, что вам, вероятно, нужно знать, это:скачать Ubuntu, запишите его на диск, затем перезагрузите компьютер с диском в вашем дисководе.

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

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededlowercaseError: User Rate Limit Exceededsudo apt-get install r-baseError: User Rate Limit Exceeded
1

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

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

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

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

тогда решение может быть просто -r:

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

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

Error: User Rate Limit Exceeded

Похожие вопросы