Некоторые встраиваемые функции отправляют предупреждающие сообщения, не используя warning()
, но print()
.
Они являются причиной проблем, особенно в циклическом методе, из-за отправки мне большого количества (но одинаковых) сообщений.
Я хочу получать выходные данные о пакетных функциях без каких-либо сообщений, но сохраняю их.
Я могу сделать это, но я чувствую, что это грязно и хочу избегать использования <<-
.Есть ли что-то хорошее?
Любая помощь будет принята с благодарностью.Ниже мой метод и желаемые результаты:
library(dplyr); library(purrr)
data <- tibble(col1 = letters[1:5], col2 = letters[6:10], col3 = letters[11:15])
f <- function(x){
if(is.numeric(x)) {
paste0(x, collapse = "")
} else {
print("Warning_by_print")
paste0(x, collapse = "")
}
}
result <- c()
captured_messages <- map(data, ~ capture.output(result <<- c(result, f(.x))))
# They are my desired output.
result; captured_unique_messages
# [1] "abcde" "fghij" "klmno"
# $col1
# [1] "[1] \"Warning_by_print\""
# ...