Подавить вывод одной команды в R

Я ищу, чтобы подавить вывод одной команды (в этом случае, apply функцию).

Можно ли это сделать без использования sink() ? Я нашел описанное решение ниже, но хотел бы сделать это в одной строке, если это возможно.

Как подавить выход

Непонятно, почему вы хотите сделать это без sink , но вы можете обернуть любые команды в функцию invisible() и подавить выход. Например:

 1:10 # prints output invisible(1:10) # hides it 

В противном случае вы всегда можете комбинировать вещи в одну строку с точкой с запятой и круглыми скобками:

 { sink("/dev/null"); ....; sink(); } 

Используйте capture.output() . Он очень похож на одноразовый sink() и в отличие от invisible() , он может подавлять больше, чем просто печатать сообщения. Задайте аргумент файла /dev/null в UNIX или NUL в windowsх. Например, учитывая примечание Дирка:

 > invisible(cat("Hi\n")) Hi > capture.output( cat("Hi\n"), file='NUL') > 

R только автоматически печатает вывод неназначенных выражений, поэтому просто назначьте результат apply к переменной, и он не будет распечатан.

вы можете использовать ‘capture.output’, как показано ниже. Это позволяет использовать данные позже:

 log <- capture.output({ test <- CensReg.SMN(cc=cc,x=x,y=y, nu=NULL, type="Normal") }) test$betas 

Следующая функция должна делать то, что вы хотите точно:

 hush=function(code){ sink("NUL") # use /dev/null in UNIX tmp = code sink() return(tmp) } 

Например, здесь функция:

 foo=function(){ print("BAR!") return(42) } 

Бег

 x = hush(foo()) 

Назначит 42 х, но не будет печатать «БАР!». к STDOUT

Обратите внимание, что в ОС UNIX вам нужно заменить «NUL» на «/ dev / null»,

 invisible(cat("Dataset: ", dataset, fill = TRUE)) invisible(cat(" Width: " ,width, fill = TRUE)) invisible(cat(" Bin1: " ,bin1interval, fill = TRUE)) invisible(cat(" Bin2: " ,bin2interval, fill = TRUE)) invisible(cat(" Bin3: " ,bin3interval, fill = TRUE)) 

производит вывод без NULL в конце строки или на следующей строке

 Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63 Width: 15.33333 Bin1: 17 32.33333 Bin2: 32.33333 47.66667 Bin3: 47.66667 63 
  • R - вырезание с помощью заданного интервала
  • Создайте последовательность, такую ​​как 112123123412345
  • используя substitute для получения имени аргумента с помощью
  • Как подсчитать количество уникальных значений по группе?
  • Удалите все знаки препинания, кроме апострофов в R
  • Как проверить, вызывает ли вызов функции предупреждение?
  • Что делает функция «pol» на самом деле?
  • multithreading с R?
  • определить параметр $ right с переменной в R
  • Выведите R-команду через что-то вроде try ()
  • Загрузка нескольких файлов одновременно?
  • Interesting Posts
    Давайте будем гением компьютера.