Lintr - есть ли способ подавить предупреждения имени столбца фрейма с заглавной буквы? - PullRequest
0 голосов
/ 23 мая 2018

Я пишу пакет R и использую lintr, чтобы привести его в порядок стилистически.

Одна проблема, которую я часто вижу, состоит в том, что мои data.frame столбцы названы из CSV и имеют заглавные буквыНапример, MyVariableName.Это вне моего контроля, и выводимые данные должны будут следовать тому же стилю.Поэтому я не хочу переименовывать их при импорте, так как это приведет к путанице при следовании коду из введенных данных.

Я использую tidyverse и NSE.Я также склонен использовать множество квази-цитат в коде (где я строю анализ из цитируемых строительных блоков, т. Е. Определяю списки, содержащие:

rlang::quo(MyFirstVar + MySecondVar) 

Я пытался использовать .data$ дляограничить их, но по-прежнему получать предупреждения за это:

rlang::quo(.data$MyFirstVar + .data$MySecondVar) 

Я нашел для dplyr команд выбора, вы можете заключать имена столбцов в строки - так что некоторые из предупреждений решаются.

Есть ли способ подавления предупреждений об именах столбцов фрейма данных?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Хмм - случайно я, кажется, решил свой собственный ответ.

Вместо использования:

rlang::quo(.data$MyFirstVar + .data$MySecondVar)

Вы можете использовать:

rlang::quo(.data[["MyFirstVar"]] + .data[["MySecondVar"]])

(иКонечно, делая это, вы также можете заменить строку переменной, если имя вашего столбца неизвестно ...)

0 голосов
/ 23 мая 2018

lintr - это пакет, который поможет вам писать в едином стиле.Если у вас есть веские причины, по которым вам нужно использовать camelCase вместо snake_case, я бы не стал пытаться обойти это.Я бы определенно не пытался удалять предупреждения, изменяя ваш код.Это сделает его менее читабельным, и цель руководства по стилю состоит в том, чтобы иметь более читаемый и непротиворечивый код!

Однако существуют и другие возможности подавления предупреждений при линтировании.Если вы посмотрите на Readme.md на GitHub, есть как минимум две возможности:

  • Вы можете добавить каждую строку с ошибкой с помощью # nolint или целые блоки кода с помощью # nolint start и # nolint end.
  • Вы можете создать файл конфигурации (.lint) в корневом каталоге проекта и изменить линтеры по умолчанию.

В зависимости от того, как вы звоните lintr при проверке вашего кода могут быть и другие варианты.

...