Как я могу избежать печати R script при каждом запуске? - программирование

Как я могу избежать печати R script при каждом запуске?

Предположим, что у меня есть R script:

library('nnet')    
something <- runif(50); 
print(something) 

Когда я запускаю этот script из командной строки, он печатает:

> library('nnet')
> something <- runif(5); 
> print(something)
 [1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019

Я бы хотел, чтобы он печатался только:

[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019

и я не могу понять, как это сделать. sink ( "/dev/null" ) ничего не делает, перенаправление stderr вручную ничего не делает, и я не могу найти полезной информации об этом.

4b9b3361

Ответ 1

Разрешение должно выполняться с Rscript, а не с R. Примеры в другом месте (например, Как читать параметры командной строки из R script?), запустите сценарии из командной строки с помощью

R --args args1 args2... < foo.R

работает с

Rscript foo.R args1 args2 ...

выводит только вывод, а не script. Это также более чистый способ запуска скриптов.

Ответ 2

Не пользователь R, но разве это может быть полезно для вас? Как запустить "R" script без подавления вывода?

Из связанного вопроса:

укажите print.eval параметр, установленный на TRUE, если вы хотите получить только вывод (а не команды). Если вам понадобятся также команды, вы должны установить echo в TRUE (что означает установку print.eval на TRUE).

Например:

source('myscript.R', print.eval = TRUE)

Ответ 3

source( 'path/name/filnam.R' , verbose=FALSE)

Ответ 4

Для запуска в терминале напрямую:

R --slave --args dense 12 0.98 < foo.R

Для запуска скрипта R из Python:

process = subprocess.Popen(["R --slave --args %s %d %.2f < /path/to/your/rscript/foo.R" % (, 12, 0.98) ], shell=True)
process.wait()

Для запуска R-скрипта в терминале/командной строке и в фоновом режиме, при этом подавляйте/не печатайте каждую строку скриптов и вывод программы, используя R CMD BATCH следующим образом:

R CMD BATCH--slave foo.R 2>&1  foo.out &

Смотрите также эту ссылку

Ответ 5

Для RStudio IDE (версия 1.1.383) в Windows:

Нажатие клавиш Ctrl + Shift + Enter выполняется целым script с эхом (verbose)

Нажатие клавиш Ctrl + Shift + S выполняется целым script без эха (без вербального)