Я хочу подавить вывод команды one (в этом случае функция apply
).
Можно ли это сделать без использования sink()
? Я нашел описанное решение ниже, но хотел бы сделать это в одной строке, если это возможно.
Я хочу подавить вывод команды one (в этом случае функция 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
в окнах. Например, учитывая примечание Дирка:
> 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
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