В R, возможно ли подавить "Примечание: нет видимого связывания для глобальной переменной"?

Мне интересно, можно ли подавить эти выходы в R, которые загромождают консоль:

Note: no visible binding for global variable '.->ConfigString' 
Note: no visible binding for '<<-' assignment to 'ConfigString' 

Вот код (его простой ReferenceClass для хранения конфигурации для проекта R):

# Reference Class to store configuration
Config <- setRefClass("Config",
  fields = list(    
    ConfigString = "character"
    ),
    methods = list(
        # Constructor
        initialize = function() {
            ConfigString <<- "Hello, World!"
        }
  )
)

Что я пробовал до сих пор

Я пытался когда-либо комбинации и перестановки предопределения переменных, предварительно установив их в нуль, и т.д., но R по-прежнему упорно печати сотни "Нет видимых Binding" отмечает в своем исходном коде.

Кто-нибудь мудрее меня, когда речь заходит о внутренностях R?

Обновление 1

Я попытался изменить Config <- на Config <<-, и это избавляет от второй посторонней ноты. Первая посторонняя заметка все еще присутствует.

Обновление 2

Я начинаю терять сердце, даже пример кода от John Chambers генерирует больше этих ужасных, посторонних заметок.

Обновление 3

Эти заметки встречаются в Revolution R v7.0, но не встречаются в RStudio. Кажется, что Revolution R v7.0 вызывает R CMD check, который обычно используется только при подготовке пакетов, поэтому эти заметки можно безопасно игнорировать.

Обновление 4

Код Hadley Wickhams также генерирует эти примечания. По-видимому, их можно устранить с помощью utils::globalVariables, однако это, похоже, не работает на новых ReferenceClasses. Даже если бы было возможно использовать их, Хэдли утверждает:

globalVariables - отвратительный хак, и я никогда не буду использовать его.

Ответ 1

Все кредиты @Tyler Rinker за этот ответ.

Чтобы устранить эти примечания, префикс исходного кода выше:

# Intent:
#   This function suppresses the following notes generated by "R CMD check":
#   - "Note: no visible binding for global variable '.->ConfigString'"
#   - "Note: no visible binding for '<<-' assignment to 'ConfigString'"
# Usage:
#   Add the following right in the beginning of the .r file (before the Reference
#   class is defined in the sourced .r file):
#   suppressBindingNotes(c(".->ConfigString","ConfigString"))
suppressBindingNotes <- function(variablesMentionedInNotes) {
    for(variable in variablesMentionedInNotes) {
        assign(variable,NULL, envir = .GlobalEnv)       
    }
}

suppressBindingNotes(c(".->ConfigString","ConfigString"))

Кроме того, иногда может потребоваться перезапуск Revolution R, если он работает в течение длительного времени.

Ответ 2

Вы можете попробовать эту команду.

compiler:: setCompilerOptions (suppressAll = TRUE)

Это работает для меня, чтобы подавить сообщения вроде

Примечание: нет видимой привязки для глобальной переменной...
Примечание: нет видимой привязки для определения глобальной функции...