我一直在编写一个R包,并使用lintr整理它的风格。
我经常看到的一个问题是,我的data.frame列是从CSV命名的,并且是大写的,例如MyVariableName。这超出了我的控制范围,输出的数据将需要遵循相同的样式。因此,我不想在导入时重命名它们,因为这将导致在跟随输入数据的代码时出现混乱。
我正在使用tidyverse和NSE。我也倾向于在代码中使用大量的准引号(在代码中,我正在从引用的构建块构建分析,即。定义清单,其中包括:
rlang::quo(MyFirstVar + MySecondVar) 我尝试过使用.data$对它们进行定位,但仍然会得到相应的警告:
rlang::quo(.data$MyFirstVar + .data$MySecondVar) 我发现对于dplyr,select命令可以将列名引用为字符串,所以这解决了一些警告。
是否有一种方法来禁止有关数据帧列名的警告?
发布于 2018-05-24 16:09:51
嗯-偶然间我似乎解决了我自己的问题。
而不是使用:
rlang::quo(.data$MyFirstVar + .data$MySecondVar)您可以使用:
rlang::quo(.data[["MyFirstVar"]] + .data[["MySecondVar"]])(当然,如果列名未知,也可以用变量替换字符串.)
发布于 2018-05-23 08:49:46
lintr是一个包,可以帮助您以一致的风格编写。如果您有合理的理由来解释为什么需要使用camelCase而不是snake_case,那么我不会试图回避这个问题。我绝对不会试图通过更改您的代码来删除警告。这将降低它的可读性,并且样式指南的目标是有更多可读性和一致性的代码!
然而,也有其他的可能性,以抑制警告时,皮毛。如果您查看Readme.md at GitHub,至少有两种可能性:
# nolint或整个代码块添加每一行# nolint start和# nolint end。.lint),并更改默认指针。根据您在检查代码时调用lintr的方式,可能还有其他选项。
https://stackoverflow.com/questions/50481829
复制相似问题