R: Avoid accidently overwriting variables
namespaces, overwrite, r
Solution
Check out `? lockBinding`:
a <- 2
a
## [1] 2
lockBinding('a', .GlobalEnv)
a <- 3
## Error: cannot change value of locked binding for 'a'
And its complement, `unlockBinding`:
unlockBinding('a', .GlobalEnv)
a <- 3
a
## [1] 3
Problem
Is there any way to define a variable in R in your namespace, such that it can't be overwritten (maybe ala a "Final" declaration)? Something like the following psuedocode: ``` > xvar <- 10 > xvar [1] 10 xvar <- 6 > "Error, cannot overwrite this variable unless you remove its finality attribute" ``` Motivation: When running R scripts multiple times, it's sometimes too easy to inadvertently overwrite variables.