Как мне избавиться от примечаний, сгенерированных проверкой 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 добавлена в ваше ОПИСАНИЕ.
Избегать использования глобальных переменных путем цитирования всегда предпочтительнее.