46

意図したメッセージをコンソールに印刷したいのですが、コンソールを使用lapplyして印刷すると、不要なメッセージが印刷されます。[[i]]NULL私は試しましsuppressWarningssuppressMessagesが、これらは不要な犯罪者を削除しません。私は検索lapplyしましたが、それを黙らせるための議論は見当たりません。機能を妨げないので、これはより美的です。ユーザーが望むならそれをオフにできる限り、私はコンソールへの代替印刷に反対していません。

これが関数の例、出力、そして私が取得したいものです:

サンプル関数:

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

FUN("hello")

出力:

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

[[2]]
NULL

[[3]]
NULL

必要な出力:

hello 1
hello 2
hello 3
4

3 に答える 3

60

使用invisible、例:

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

lapply関数内の呼び出しをラップして、整理することもできます。

于 2012-10-20T03:33:52.030 に答える
9

プライアから使用l_ply:

library(plyr)
FUN <- function(x) {
    FUN2 <- function(z) message(z)
    l_ply(1:3, function(i) FUN2(paste(x, i)))
}
FUN("hello")
于 2012-10-22T23:08:53.970 に答える