r

Deje de lapear desde la impresión a la consola



(3)

Cuando uso lapply e lapply en la consola, se imprime no deseado [[i]]NULL aunque quiero que el mensaje deseado se imprima en la consola. He intentado suppressWarnings y suppressMessages pero estos no eliminan al delincuente no deseado. Busqué lapply y no veo una discusión para silenciarla. Esto es más estético ya que no interfiere con la función. No me opongo a la impresión alternativa en la consola siempre que el usuario pueda apagarla si lo desea.

Aquí hay una función de ejemplo, el resultado y lo que me gustaría obtener:

Función de muestra:

FUN <- function(x) { FUN2 <- function(z) message(z) lapply(1:3, function(i) FUN2(paste(x, i))) } FUN("hello")

Salida:

hello 1 hello 2 hello 3 [[1]] NULL [[2]] NULL [[3]] NULL

Salida deseada:

hello 1 hello 2 hello 3



Use invisible , por ejemplo:

invisible(FUN("hello")) hello 1 hello 2 hello 3

También puede envolver la llamada de solicitud en la función para que esté más ordenada.


Use l_ply de plyr:

library(plyr) FUN <- function(x) { FUN2 <- function(z) message(z) l_ply(1:3, function(i) FUN2(paste(x, i))) } FUN("hello")