utils :: globalVariables (.) не применимо к R CMD CHECK note: нет видимой привязки для глобальной переменной '.' [Дубликат]

34
задан Sacha Epskamp 11 November 2011 в 17:37
поделиться

4 ответа

Чтобы пройти мимо R CMD check, вы можете:

  • Использовать get("b") (но это обременительно)
  • Поместить a=b=NULL где-то выше в вашем (это то, что я делаю)

Некоторое время назад на r-devel был поток, из которого кто-то из r-core в основном говорил (из памяти): «УКАЗАНИЯ в порядке, вы знаете. предположение заключается в том, что автор проверил его и в порядке с ПРИМЕЧАНИЕ. ". Но я согласен с тобой. Я предпочитаю, чтобы проверки CRAN возвращали чистое «ОК» на всех платформах. Таким образом, пользователь не сомневается, что он проходит проверки в порядке.

EDIT:

Вот поток r-devel , который я помню (из Апрель 2010 г.). Таким образом, похоже, что есть некоторые ситуации, когда нет известного способа избежать ПРИМЕЧАНИЕ, но это нормально.

40
ответ дан Matt Dowle 1 September 2018 в 02:40
поделиться

Это один из потенциальных «непредвиденных последствий» использования subset неинтерактивно. Как говорится в разделе предупреждения ?subset:

Это функция удобства, предназначенная для интерактивного использования. Для программирования лучше использовать стандартные функции подмножества, такие как '[', и, в частности, нестандартная оценка подмножества аргументов может иметь непредвиденные последствия.

17
ответ дан Joshua Ulrich 1 September 2018 в 02:40
поделиться

Начиная с версии 2.15.1 R, существует способ:

if(getRversion() >= "2.15.1")  utils::globalVariables(c("a", "othervar"))
11
ответ дан seancarmody 1 September 2018 в 02:40
поделиться

В соответствии с секцией предупреждения ?subset лучше использовать подмножество в интерактивном режиме, а [ для программирования.

Я бы заменил команду, подобную

subset(foo,a)

с

foo[foo$a]

, или если foo является фреймворком данных:

foo[foo$a, ]

вы также хотел бы использовать with, если foo является фреймворком данных, и оцениваемое выражение является сложным:

with(foo, foo[a, ])

9
ответ дан tekumara 1 September 2018 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: