Как мне избавиться от примечаний, сгенерированных проверкой CMD R при использовании, например, ddply в моем пакете?

У меня есть проблема, аналогичная, но отличная от того, как я могу обработать примечания R CMD "нет видимой привязки для глобальной переменной", когда мой синтаксис ggplot2 является разумным?,

В этом сценарии все работает гладко, используя aes_string вместо aes. Однако это невозможно с plyr afaik.

Проблема возникает, когда я ссылаюсь на имена столбцов в моем фрейме данных, например, через ddply.

ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE))
#
# MyPackage: no visible binding for
#   global variable ‘VarA’

Этот код полностью действителен и вменяем, и хотя я понимаю использование ПРИМЕЧАНИЕ, они по-прежнему загромождают другие сообщения в окнах вывода, делая разработку пакета болью и фактически заставляя разработчиков игнорировать NOTE.

Как правильно избавиться от этих заметок? Или, в качестве альтернативы, как правильно написать код так, чтобы проверка CMD принималась без указания ПРИМЕЧАНИЕ?

Лучший, Майкл

2 ответа

Решение

Есть несколько обходных путей. Проще всего назначить NULL ко всем переменным без видимой привязки.

VarA <- VarB <- VarC <- VarD <- VarE <- NULL

Более элегантным решением является использование as.quoted а также substitute, ОБНОВЛЕНИЕ @Dr. Майк: призыв к as.quoted должны быть заключены в c(),

ddply(mydf, 
      as.quoted(c('VarA', 'VarB', 'VarC', 'VarD')), 
      summarize, 
      sum = sum(substitute(VarE)))

Вы можете избежать предупреждений проверки CMD, объявив глобальные переменные:

globalVariables(c("VarA", "VarB"))

Пожалуйста, прочитайте ?globalVariables перед использованием, и убедитесь, что соответствующая версия R добавлена ​​в ваше ОПИСАНИЕ.

Избегать использования глобальных переменных путем цитирования всегда предпочтительнее.

Другие вопросы по тегам