提问人:cpsyctc 提问时间:6/11/2021 最后编辑:Ronak Shahcpsyctc 更新时间:6/18/2021 访问量:617
为什么尽管使用了 warning=FALSE,但 Rmarkdown 代码块中的“Joining, by =”消息会渗出?我应该报告为错误吗?
Why do "Joining, by =" messages bleed through in Rmarkdown code blocks despite using warning=FALSE? Should I report as a bug?
问:
这里有一个有用的序列(禁止注释“加入者......”运行 dplyr::left_join) 时,可以通过显式规定连接变量或将整个 dplyr 块包装起来以消除此渗漏来抑制消息。suppressWarnings
这很有用,但我不明白为什么 Rmarkdown 代码块标头中都没有禁止显示此消息?该消息似乎介于消息和警告之间,可以通过其他地方的评论来判断,但我认为我们应该能够使用其中一个阻止选项来抑制该消息。"message=FALSE"
"warning=FALSE"
我确实理解未指定消息时的消息背后的逻辑,并且我确实知道,但是将 dplyr 块包装在任何东西中似乎不适合有用的 tidyverse 语法。"by = "
suppressWarnings
这值得错误报告或功能请求吗?如果是这样,对谁来说:问题是 dplyr 如何发出消息,还是针织或其他地方的问题?
答:
0赞
W. Joel Schneider
6/18/2021
#1
对我来说,最好的选择是明确设置你的论点:by
tib1 %>%
left_join(tib2, by = "lwr") %>%
pander()
或者,使用:suppessMesseages
suppressMessages(tib1 %>%
left_join(tib2) %>%
pander())
评论
1赞
cpsyctc
6/20/2021
我承认两者都是可能的。但是,诚然,我认为只是偶尔,您可能不知道您将提前加入的相交变量,因此有时前者是不可能的,我仍然相信在整洁的语法中,后者是丑陋的,并且两者都肯定回避了这一点,即这要么是消息,要么是警告,因此应该被 Rmarkdown 块头中的参数所抑制, 如果不使用它们,它们是什么,但使用哪个抑制丢失了。我想我应该将其报告为迎合中的错误。message=FALSE, warning=FALSE
pander()
评论
library(tidyverse) library(pander) bind_cols(letters[1:6], LETTERS[1:6]) %>% as_tibble() %>% rename(lwr = `...1`, upr = `...2`) -> tib1 bind_cols(letters[1:6], 1:6) %>% as_tibble() %>% rename(lwr = `...1`, numbers = `...2`) -> tib2 tib1 %>% left_join(tib2) %>% pander()