Вопрос по linux, r, shell, unix – запуск r скриптов или команд с интерпретатором в unix для unix-layman
Я дилетант 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.
R
, Вы также можете взглянуть на некоторые из отличных доступных гис (я бы посоветовалRStudio как отличная отправная точка). Наконец, запуск сценария может быть легко выполнен. Часто вы используетеR CMD BATCH script.R
но есть много альтернатив и вариантов, которые хорошо документированы.
Justin
R
documentation, Там у вас есть хорошие инструкции дляinstallation и, например,scripting.
Maehler
что вы сохраните свой скрипт в простом текстовом файле с именемso.R
, вы можете запустить его под Linux / Unix, набравR
по подсказке. Однажды в R введите
source('so.R')
выполнить скрипт в среде R (предполагается, что файл so.R находится в том же каталоге, что и вы, когда вы вводите эту команду).
Чтобы запустить скрипт из командной строки Linux / Unix, используйте следующую команду:
R CMD BATCH so.R
Обратите внимание, что я получил график, чтобы показать, когда запустил скрипт внутри R, но из командной строки Linux он не отображается. Я подозреваю, что он быстро отображается, а затем исчезает, так что будет команда R, которую вы должны искать, чтобы она приостановилась после отображения графика.
как вы сформулировали свой вопрос, я догадываюсь, что вы, возможно, 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, запишите его на диск, затем перезагрузите компьютер с диском в вашем дисководе.
Надеюсь это поможет.
арии оболочки. И то и другое примеры также будут определять функции без их выполнения, если сценарии загружается в интерактивный 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))
}
тогда решение может быть просто -r:
http://code.google.com/p/simple-r/
Он специально разработан для простого статистического анализа в составе командной строки Linux. Например, если кто-то хочет построить некоторые данные, '-p data.txt' сделаю работу; для получения коэффициента корреляции: «r cor data.txt»; будет достаточно.