Если вы хотите, чтобы вывод печатался на терминал, лучше использовать Rscript
Rscript a.R
. Обратите внимание, что при использовании R CMD BATCH a.R
вместо перенаправления вывода на стандартный вывод и отображение на терминале a будет создан новый файл с именем .Rout.
R CMD BATCH a.R
# Check the output
cat a.Rout
Если вы действительно хотите использовать способ ./a.R
вызова сценария, вы можете добавить соответствующий #!
в начало скрипта
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
Также я буду замечать, что если вы работаете в системе * unix, то есть полезный пакет littler , который обеспечивает легкий путь к командной строке R.
Это не отвечает на вопрос напрямую. Но кто-то может оказаться здесь, потому что они хотят запустить oneliner 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.
Rscript -e "getwd()"
в терминале. Rscript выводит только вывод команды, а не полное сообщение о запуске R.
– Paul Rougieux
30 December 2015 в 09:55
r -e "cat(getwd(),'\n')"
, если у вас установлен littler. В этот ответ Дирк Эддельбуэттель объясняет разницу между littler и Rscript.
– Paul Rougieux
30 December 2015 в 10:15
R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
– Erin
18 October 2016 в 06:22
R -r 'options(warn=2); install...'
в случае сбоя установки. В противном случае любые ошибки install.packages
являются только предупреждениями.
– rvernica
18 January 2017 в 17:41
Только для документации. Иногда вам нужно запустить скрипт как sudo
:
sudo Rscript path/to/your/file.R
Еще один способ запуска R-скрипта из командной строки:
R < scriptName.R --no-save
или с помощью --save
.
См. также . Каков наилучший способ использовать сценарии R в командной строке (терминал)? .
Еще один способ использования 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
Как запустить 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
для запуска R-сценария с терминала.
Отъезд 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()
R CMD BATCH
ужасно. Все, кроме этого ... – Dirk Eddelbuettel 18 January 2015 в 03:27