如何在R包中创建常量变量,其值不能改变?换句话说,我们如何在包环境中锁定对名称值?
示例:在我的包中,我在不同函数的循环中使用Normal分布的分位数,并且不想一直计算(或创建)它。
我尝试了k_q3 <- qnorm(1 - 0.01/2); lockBinding("k_q3", environment())
,但它不起作用。
更新:上面的方法实际上是可行的。一个人不能改变k_q3既不在包内,也不在外面。
答案 0 :(得分:0)
最简单和最干净的方法是创建一个函数,例如
K_Q3 <- function() { qnorm(1 - 0.01/2) }
请注意,在 R 中调用函数具有不可忽略的开销。 你应该避免在循环中调用它,或者之前将它复制到局部变量中。
答案 1 :(得分:0)
就像您通过将定义它们的 .R 文件放在包目录中的“R”文件夹中来为包创建函数对象一样。您可以简单地将数值 2.575829
分配给变量名称——只是不要导出它。