R で変更不可能な変数を作るには lockBinding 関数を使います。
a <- 1
lockBinding("a", .GlobalEnv)
変数を定義してから lockBinding すると誤って変更してしまう場合があるので,定義と定数化を同時に行います。
constAssign <- function(x, value, envir=as.environment(-1)) {
e <- envir
assign(x, value, envir=e)
lockBinding(x, e)
}
assign 関数と同様に,次のように使うことができます。
constAssign("FOO", 1)
定義した定数を削除する場合は,普通に rm 関数で問題ありません。
rm(FOO)
参考文献
履歴
- [2013-05-14 19:30]
envir引数の処理を修正。