Lintr - 有没有办法抑制大写数据框列名称警告?
Lintr - is there a way to suppress capitalised data frame column name warnings?
我一直在编写 R 程序包并使用 lintr
对其进行样式整理。
我经常看到的一个问题是我的 data.frame
列是从 CSV 命名的并且是大写的,例如MyVariableName
。这是我无法控制的,输出的数据需要遵循相同的样式。因此我不想在导入时重命名它们,因为在遵循输入数据的代码时会导致混淆。
我正在使用 tidyverse
和 NSE。我也倾向于在代码中使用大量类似引用的东西(我从引用的构建块中构建分析,即定义包含的列表:
rlang::quo(MyFirstVar + MySecondVar)
我已经尝试使用 .data$
来确定它们的范围,但仍然收到警告:
rlang::quo(.data$MyFirstVar + .data$MySecondVar)
我发现对于 dplyr
select 命令,您可以将列名作为字符串引用 - 这样可以解决一些警告。
有没有办法抑制有关数据框列名称的警告?
lintr
是一个帮助你写出风格一致的包。如果您有充分的理由说明为什么需要使用驼峰命名法而不是 snake_case,我不会尝试规避它。我绝对不会尝试通过更改代码来删除警告。这会降低它的可读性,风格指南的目标是让代码更具可读性和一致性!
然而,还有其他方法可以在 linting 时抑制警告。如果你看看GitHub处的Readme.md,至少有两种可能:
- 您可以在每个违规行后附加
# nolint
或在整个代码块后附加 # nolint start
和 # nolint end
。
- 您可以在项目根目录中创建一个配置文件 (
.lint
) 并更改默认的 linters。
根据您在检查代码时调用 lintr
的方式,可能还有其他选项。
嗯 - 偶然我似乎已经解决了我自己的答案。
而不是使用:
rlang::quo(.data$MyFirstVar + .data$MySecondVar)
您可以使用:
rlang::quo(.data[["MyFirstVar"]] + .data[["MySecondVar"]])
(当然,如果您的列名未知,您也可以用变量替换字符串...)
我一直在编写 R 程序包并使用 lintr
对其进行样式整理。
我经常看到的一个问题是我的 data.frame
列是从 CSV 命名的并且是大写的,例如MyVariableName
。这是我无法控制的,输出的数据需要遵循相同的样式。因此我不想在导入时重命名它们,因为在遵循输入数据的代码时会导致混淆。
我正在使用 tidyverse
和 NSE。我也倾向于在代码中使用大量类似引用的东西(我从引用的构建块中构建分析,即定义包含的列表:
rlang::quo(MyFirstVar + MySecondVar)
我已经尝试使用 .data$
来确定它们的范围,但仍然收到警告:
rlang::quo(.data$MyFirstVar + .data$MySecondVar)
我发现对于 dplyr
select 命令,您可以将列名作为字符串引用 - 这样可以解决一些警告。
有没有办法抑制有关数据框列名称的警告?
lintr
是一个帮助你写出风格一致的包。如果您有充分的理由说明为什么需要使用驼峰命名法而不是 snake_case,我不会尝试规避它。我绝对不会尝试通过更改代码来删除警告。这会降低它的可读性,风格指南的目标是让代码更具可读性和一致性!
然而,还有其他方法可以在 linting 时抑制警告。如果你看看GitHub处的Readme.md,至少有两种可能:
- 您可以在每个违规行后附加
# nolint
或在整个代码块后附加# nolint start
和# nolint end
。 - 您可以在项目根目录中创建一个配置文件 (
.lint
) 并更改默认的 linters。
根据您在检查代码时调用 lintr
的方式,可能还有其他选项。
嗯 - 偶然我似乎已经解决了我自己的答案。
而不是使用:
rlang::quo(.data$MyFirstVar + .data$MySecondVar)
您可以使用:
rlang::quo(.data[["MyFirstVar"]] + .data[["MySecondVar"]])
(当然,如果您的列名未知,您也可以用变量替换字符串...)