gpt4 book ai didi

r - 运行 dplyr::left_join 时禁止注释 "joining by..."

转载 作者:行者123 更新时间:2023-12-04 08:24:24 26 4
gpt4 key购买 nike

这可能很简单,但我无法在任何地方找到答案......

当我使用以下代码时

library("nycflights13")
result <- flights %>%
dplyr::select(year:day, hour, origin, dest, tailnum, carrier) %>%
dplyr::left_join(airlines)

以下评论在屏幕上回显:
> Joining by: "carrier"

这当然是在交互式 session 中看到的有用信息,但是当我使用 left_join 时作为较长脚本的一部分,我通常不希望回显这种类型的注释(尤其是当脚本通过 knitr 生成 html 报告时,因为该 html 还将包含打印的 Joining by: "carrier" 行。

如何防止 left_join (等)打印此评论?

谢谢,彼得

最佳答案

@Khashaaa 的评论指出了一种防止该消息的方法,如果您事先知道绑定(bind)变量,它会非常有用且简洁。见 ?dplyr::join了解如何使用一个或多个变量来做到这一点。给定示例的语法是

left_join(airlines,by="carrier")

因为 dplyr代码使用 R 的 message()发出 Joining by: * 的函数消息,您可以使用 R 的 suppressMessages() left_join 周围的包装(或任何其他 dplyr 加入)来禁止这些消息。见 ?message了解更多信息。 OP 示例实际上返回两种消息,
>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了解更多信息;有几种方法可以处理这种情况。一种方法,如果您选择像上一条消息一样抑制它,是添加另一个包装器,
> suppressWarnings(suppressMessages(result <- flights %>% 
+ select(year:day, hour, origin, dest, tailnum, carrier) %>%
+ left_join(airlines)))
>

关于r - 运行 dplyr::left_join 时禁止注释 "joining by...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29168204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com