[英]Capturing warning message into a variable in RR
我有一個函數draw_plot()
接受一個數據框和其他參數(通過省略號)並簡單地返回一個線圖。
draw_plot <- function(data, ...){
plot <- ggplot(data = data, mapping = aes(x = x, y = y))
plot <- plot + do.call("geom_line", c(list(...)))
return(plot)}
data <- tibble::tibble(x = c(1,2,3,4,5,6), y = c(5,6,7,8,9,10))
draw_plot(data, test = 2, wrong = "")
如果我調用上述函數,並使用帶有geom_line()
函數無法識別的鍵值的參數,它會返回一條警告,指出“忽略未知參數:測試,錯誤”。
我希望改進該功能以方便更多參數和其他 ggplot geoms。 (例如: draw_plot(data, stat, ...)) stat 參數對geom_line()
無效。 因此,我想捕獲原始警告消息並將“stat”附加到它。 例如:'忽略未知參數:測試,錯誤,統計'
為此,有什么方法可以將此特定警告消息捕獲到變量中? ps 我試圖堅持使用基礎 R 來做到這一點。
以下是捕獲警告消息的方法 -
draw_plot <- function(data, ...){
plot <- ggplot(data = data, mapping = aes(x = x, y = y))
plot <- tryCatch(plot + do.call("geom_line", c(list(...))),
warning = function(w) {
if(grepl('Ignoring unknown parameters', w$message))
wmsg <<- as.character(w$message)
return(NULL)
})
if(exists('wmsg')) print(wmsg)
return(plot)
}
draw_plot(data, test = 2, wrong = "")
draw_plot(data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.