这可能很简单,但我无法在任何地方找到答案......
当我使用以下代码时
library("nycflights13")
result <- flights %>%
dplyr::select(year:day, hour, origin, dest, tailnum, carrier) %>%
dplyr::left_join(airlines)
以下评论在屏幕上显示:
> Joining by: "carrier"
这在交互式会话中肯定是有用的信息,但是当我使用left_join
作为较长脚本的一部分时,我通常不希望回应这种类型的注释(特别是当脚本生成html报告通过knitr,因为那个html也会包含一条打印的Joining by: "carrier"
行。
如何阻止left_join(等)打印此评论?
谢谢,彼得
答案 0 :(得分:4)
@Khashaaa的评论表明了一种防止该消息的方法,如果您事先知道绑定变量,那么这种方法很有用且简洁。有关如何使用一个或多个变量执行此操作,请参阅?dplyr::join
。给定示例的语法是
left_join(airlines,by="carrier")
由于dplyr
代码正在使用R message()
函数发出Joining by: *
消息,因此您可以使用R&#39 {1}}包装器suppressMessages()
(或任何其他left_join
联接)来禁止这些消息。有关详细信息,请参阅dplyr
。 OP示例实际上返回两种消息,
?message
可以使用>library("nycflights13")
>library("dplyr")
>result <- flights %>%
+ select(year:day, hour, origin, dest, tailnum, carrier) %>%
+ left_join(airlines)
Joining by: "carrier"
Warning message:
In left_join_impl(x, y, by$x, by$y) :
joining factor and character vector, coercing into character vector
包装器
suppressMessages()
第二条消息是诊断警告消息。有关详细信息,请参阅>suppressMessages(result <- flights %>%
+ select(year:day, hour, origin, dest, tailnum, carrier) %>%
+ left_join(airlines))
Warning message:
In left_join_impl(x, y, by$x, by$y) :
joining factor and character vector, coercing into character vector
;有几种方法可以处理这种情况。一种方法,如果你选择像上一条消息一样压制它,就是添加另一个包装器,
?warning