当我使用lapply并打印到控制台时,它会打印出不需要的内容,[[i]]NULL但我希望将预期的消息打印到控制台.我已经尝试了suppressWarnings,suppressMessages但这些并没有删除不受欢迎的罪犯.我搜索lapply并没有看到一个让它沉默的论据.这更美观,因为它不会干扰功能.我不反对在控制台上进行替代打印,只要用户可以根据需要将其关闭即可.
这是一个示例函数,输出和我想得到的:
示例功能:
FUN <- function(x) {
FUN2 <- function(z) message(z)
lapply(1:3, function(i) FUN2(paste(x, i)))
}
FUN("hello")
Run Code Online (Sandbox Code Playgroud)
输出:
hello 1
hello 2
hello 3
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
Run Code Online (Sandbox Code Playgroud)
期望的输出:
hello 1
hello 2
hello 3
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 46
使用invisible,例如:
invisible(FUN("hello"))
hello 1
hello 2
hello 3
Run Code Online (Sandbox Code Playgroud)
您也可以将它包裹lapply在函数中的调用周围以使其更整洁.
使用l_plyplyr:
library(plyr)
FUN <- function(x) {
FUN2 <- function(z) message(z)
l_ply(1:3, function(i) FUN2(paste(x, i)))
}
FUN("hello")
Run Code Online (Sandbox Code Playgroud)