This is probably straightforward, but I can't find the answer anywhere...
When I use the following code
library("nycflights13")
result <- flights %>%
dplyr::select(year:day, hour, origin, dest, tailnum, carrier) %>%
dplyr::left_join(airlines)
The following comment is echoed onscreen:
> Joining by: "carrier"
This is certainly useful info to see in interactive sessions, but when I use left_join
as part of a longer script, I generally do not want to have this type of comment echoed (especially not when the script generates an html report through knitr, because that html will then also contain a printed Joining by: "carrier"
line.
How can I prevent left_join (and the like) to print this comment?
Thanks, Peter
The comment by @Khashaaa indicates one way to prevent the message, useful and succinct if you know in advance the binding variables. See ?dplyr::join
for how to do this with one or more variables. The syntax for the given example would be
left_join(airlines,by="carrier")
Because the dplyr
code is using R's message()
function to emit the Joining by: *
message, you could use R's suppressMessages()
wrapper around the left_join
(or any other dplyr
join) to suppress these messages. See ?message
for more info. The OP example in fact returns two kinds of messages,
>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
One can suppress the first message with the suppressMessages()
wrapper
>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
The second message is a diagnostic warning message. See ?warning
for more information; there are several ways to handle this case. One way, if you choose to suppress it like the previous message, is to add another wrapper,
> suppressWarnings(suppressMessages(result <- flights %>%
+ select(year:day, hour, origin, dest, tailnum, carrier) %>%
+ left_join(airlines)))
>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With