如何在R包内创建一个常量?

时间:2015-10-07 14:29:04

标签: r package constants environment

如何在R包中创建常量变量,其值不能改变?换句话说,我们如何在包环境中锁定对名称值?

示例:在我的包中,我在不同函数的循环中使用Normal分布的分位数,并且不想一直计算(或创建)它。

我尝试了k_q3 <- qnorm(1 - 0.01/2); lockBinding("k_q3", environment()),但它不起作用。

更新:上面的方法实际上是可行的。一个人不能改变k_q3既不在包内,也不在外面。

2 个答案:

答案 0 :(得分:0)

最简单和最干净的方法是创建一个函数,例如

K_Q3 <- function() { qnorm(1 - 0.01/2) }

请注意,在 R 中调用函数具有不可忽略的开销。 你应该避免在循环中调用它,或者之前将它复制到局部变量中。

答案 1 :(得分:0)

就像您通过将定义它们的 .R 文件放在包目录中的“R”文件夹中来为包创建函数对象一样。您可以简单地将数值 2.575829 分配给变量名称——只是不要导出它。