Нет видимой привязки для глобальной переменной Примечание в R CMD check

Я заметил, что при проверке пакета я получаю заметки «нет видимого связывания для глобальной переменной», когда я использую такие функции, как subset которые используют аргументарные имена элементов списка.

Например, с фреймом данных:

foo <- data.frame (a = c (TRUE, FALSE, TRUE), b = 1: 3)

Я могу делать такие глупые вещи, как:

 subset(foo,a) transform(foo,a=b) 

Какая работа, как ожидалось. Проверка кода R в R CMD, однако, не понимает, что они относятся к элементам и жалуются на отсутствие видимых привязок глобальных переменных.

Хотя это работает нормально, мне не очень нравится иметь заметки в моем пакете и предпочитают, чтобы он проходил проверку без ошибок, предупреждений и заметок. Я также не хочу слишком много переделывать свой код. Есть ли способ написать эти коды, чтобы было ясно, что аргументы не относятся к глобальным переменным?

4 Solutions collect form web for “Нет видимой привязки для глобальной переменной Примечание в R CMD check”

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

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

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

РЕДАКТИРОВАТЬ :

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

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

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

Начиная с R версии 2.15.1 и далее, есть способ:

 if(getRversion() >= "2.15.1") utils::globalVariables(c("a", "othervar")) 

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

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

subset(foo,a)

с

foo[foo$a]

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

foo[foo$a, ]

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

with(foo, foo[a, ])

  • Как использовать Parcel в Android?
  • Как использовать пользовательские пакеты в golang?
  • Как проверить, установлен ли Facebook Android
  • Как мне обращаться с «пакетом ххх» не доступно (для R версии xyz)? Предупреждение?
  • Преимущество использования Parcelable вместо сериализации объекта
  • Как передать ArrayList из одного действия в другое?
  • Android: Как передать объект Parcelable в цель и использовать getParcelable метод bundle?
  • Целевой пакет MSBuild не найден
  • NodeJS требует глобального модуля / пакета
  • MVC4 StyleBundle не разрешает изображения
  • Android VpnService для захвата пакетов не будет захватывать пакеты
  • Давайте будем гением компьютера.