У меня есть файл, называемый a.r
, он имеет chmod
из 755,
sayHello <- function(){
print('hello')
}
sayHello()
Как я могу запустить это через командную строку?
У меня есть файл, называемый a.r
, он имеет chmod
из 755,
sayHello <- function(){
print('hello')
}
sayHello()
Как я могу запустить это через командную строку?
Если вы хотите, чтобы вывод выводился на терминал, лучше всего использовать Rscript
Rscript a.R
Обратите внимание, что при использовании R CMD BATCH aR
вместо перенаправления вывода на стандартный вывод и отображения на терминале будет создан новый файл с именем a.Rout.
R CMD BATCH a.R
# Check the output
cat a.Rout
Еще одна вещь, которую стоит отметить при использовании Rscript, это то, что он не загружает пакет methods
по умолчанию, что может вызвать путаницу. Поэтому, если вы полагаетесь на все, что предоставляют методы, вы захотите явно загрузить это в свой скрипт.
Если вы действительно хотите использовать способ вызова скрипта ./aR
вы можете добавить соответствующий #!
в начало сценария
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
Я также отмечу, что если вы работаете в системе * unix, есть полезный пакет littler, который обеспечивает простую передачу командной строки в R.
Это не отвечает на вопрос напрямую. Но кто-то может оказаться здесь, потому что он хочет запустить терминал R из терминала. Например, если вы просто хотите установить некоторые отсутствующие пакеты и выйти, этот oneliner может быть очень удобным. Я часто использую его, когда вдруг обнаруживаю, что пропускаю некоторые пакеты, и хочу установить их там, где я хочу.
R -e 'install.packages(c("package1", "package2"))' # install to default location.
sudo R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' # install to location that requires root.
Еще один способ запуска сценария R из командной строки:
R < scriptName.R --no-save
или с --save
.
Смотрите также Как лучше всего использовать R-сценарии в командной строке (терминале)? ,
Вам нужна команда ?Rscript
для запуска R script с терминала.
Отъезд http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
Пример
## 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()
Как запустить Rmd в команде с knitr и rmarkdown несколькими командами, а затем загрузить файл HTML в RPubs
Вот пример: загрузите две библиотеки и запустите команду R
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
Еще один способ использования Rscript для * Unix-систем - Замена процесса.
Rscript <(zcat a.r)
# [1] "hello"
Который, очевидно, делает то же самое, что и принятый ответ, но это позволяет вам манипулировать и запускать файл без сохранения его в командной строке, например:
Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"
Аналогично Rscript -e "Rcode"
он также позволяет запускать без сохранения в файл. Поэтому его можно использовать в сочетании со сценариями, которые генерируют R-код, например:
Rscript <(echo "head(iris,2)")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
Просто для документации. Иногда вам нужно запустить скрипт как sudo
:
sudo Rscript path/to/your/file.R