Olá, tudo bem?
Qual a melhor forma de lidar com o NOTE no visible binding for global variable
na função devtools::check()
?
Vi que existem diferentes soluções para isso, mas não sei o que seria melhor no contexto de boas práticas.
Olá, tudo bem?
Qual a melhor forma de lidar com o NOTE no visible binding for global variable
na função devtools::check()
?
Vi que existem diferentes soluções para isso, mas não sei o que seria melhor no contexto de boas práticas.
Oi Leandro @lmendonca!
Segue um recorte do slide da aula 2 do curso de pacotes:
https://curso-r.github.io/main-pacotes/slides/index.html#53
Variáveis globais são normalmente uma má prática em código R, então a
devtools::check()
vai reclamar se encontrar algo do tipo; o problema é que as colunas modificadas em funções do{dplyr}
são caracterizadas como globais.
- A solução é criar um arquivo na pasta R/ com uma linha como a abaixo contendo todas as variáveis que fizerem a
devtools::check()
reclamarutils::globalVariables(c("variavel1", "variavel2"))
Entendi, muito obrigado Beatriz
No caso de serem muitas variáveis, não haveria algo ‘menos manual’ que poderia ser feito? Vi algo sobre talvez criar as funções declarando os argumentos de forma que já sejam entendidos como globais, mas não me pareceu muito sofisticado, e sim uma tentativa de enganar o devtools::check()
, fazendo com que elas existam como NULL
. No visible binding for global variable | R-bloggers see Option two
Nesse mesmo link fala sobre usar .data
pronoun no caso de funções do tydiverse. Eu fiz isso, mas ai o devtools::check()
reclama da variável .data
Resumindo aqui a resposta que demos em aula: a sugestão menos manual é usar o .data
e depois declará-lo como global. Na minha opinião, essa “option two” não é legal.