Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dplyr . and _no visible binding for global variable '.'_ Note in package check

In dplyr one can write code like e.g. using the '.' to refer to the data in the pipe

x <- data.frame(x = 2:4)
y <- data.frame(y = 1:3)

y %>% dplyr::bind_cols(x,.)

but when using it in a function and running the package check it produces the

no visible binding for global variable '.'.

What is the best practice to handle the NOTE?

like image 231
witek Avatar asked Feb 12 '18 15:02

witek


1 Answers

It seems that best practice is to use .data instead of . and then use import .data from the rlang package. From the programming with dplyr vignette:

If this function is in a package, using .data also prevents R CMD check from giving a NOTE about undefined global variables (provided that you’ve also imported rlang::.data with @importFrom rlang .data).

Unfortunately that doesn't work for the original question with dplyr::bind_cols, but it works for example in dplyr::mutate and dplyr::do.

like image 164
shadow Avatar answered Sep 21 '22 19:09

shadow