グローバル変数を持つパッケージを構築しています。コードは次のとおりです。
at <- NA
get.at <- function() {
if (is.na(at)) {
at <<- 1
}
at
}
しかし、私が呼び出すとget.at()
、エラーが発生します:
Error in get.at() : cannot change value of locked binding for 'at'
どうすればこの問題を解決できますか?
編集:
at
パッケージのロード後に環境が封印されているため、変更できませんでした。ただしget.at()
、カスタム関数を呼び出し.onLoad
たり、.onAttach
正常に呼び出したりすることは可能です。@danielが言ったように、別の解決策は、内部環境に属する変数を作成することです。