簡體   English   中英

將警告消息捕獲到 RR 中的變量中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM