2013-07-22 1 views
13

Предположим, у меня есть R скрипт:Как я могу избежать печати моего R-скрипта каждый раз, когда я его запускаю?

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

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

> 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 вручную ничего не делает, и я не могу найти полезной информации об этом.

+4

Как вы используете его «в командной строке»? 'Rscript foo.R' выводит только то, что вы хотите ... –

+3

И в R' source ("foo.R") 'обычно не будет отображаться ничего из скрипта, если вы не попросите его через' source ("foo.R" , echo = TRUE). Пожалуйста, покажите нам ** точно **, что вы пытаетесь/делаете. –

+1

Rscript, похоже, был тем, чего мне не хватало. Другие сообщения в SE и в других местах запускают скрипты с «R

ответ

19

Разрешение должно работать с Rscript, а не R. Примеры в других местах (например, How can I read command line parameters from an R script?), запускать скрипты из командной строки с

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

эксплуатация с

Rscript foo.R args1 args2 ... 

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

+1

+1 Хорошая работа, отвечающая на ваш собственный вопрос. –

+1

+1 Незначительная точка, «плохо сделано» не имеет права. R не всегда имел «RScript», а Q & A, с которым вы связываетесь, уже более 3 лет. Я подозреваю, что использование 'RScript' не было встроено в психику многих пользователей R в этот момент. Обратите также внимание на то, что эти примеры не отвечали на ваш вопрос - вы не хотите, чтобы ваш сценарий повторялся, и это другое дело, и неправильно критиковать за отсутствие предзнательных навыков. –

+1

@GavinSimpson Fair Point. Я соответствующим образом обновил ответ. –

2

Не пользователь R, но это что-то, что может быть полезно для вас? How can I run an 'R' script without suppressing output?

От связанного вопроса:

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

Например:

source('myscript.R', print.eval = TRUE) 
2
source('path/name/filnam.R' , verbose=FALSE) 
1

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

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

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

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

Смотрите также this reference

0

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^