R中的普适常数

24

这可能是一个基础问题,但是... 我如何在R中使用普适常数?

我习惯于在Matlab中只需编写e或PI等变量,这些变量用于表示普适常数。在R中是否也能使用它们?如何访问/使用它们?

谢谢


参见:https://dev59.com/3F3Ua4cB1Zd3GeqP9h0M - James
1个回答

30

pi(小写)已被定义,但 e 没有被定义,尽管显然可以使用 exp(1)。

pi
# [1] 3.141593

以下是内置常量的说明:

?Constants

使用以下代码可以解决这个缺乏-e问题:

e <- exp(1)
lockBinding("e", globalenv())
e
#[1] 2.718282
e <- 2.5
#Error: cannot change value of locked binding for 'e'

感谢Hadley在不同的SO线程中进行了说明。

您可能还应该去:

?NumericConstants

您将阅读到以下内容:“紧跟着数字的i被视为虚数复数。”

其他重要的常量是TRUEFALSE,虽然在干净的会话中可以使用TF,但TF并没有保留,并且可以分配其他值,这将导致难以调试的错误,因此不建议使用它们。(尽管我认为也可以在它们上面使用lockBinding策略。)

有一些字符“常量”,例如26个字符向量:lettersLETTERS,以及您所在地区的12个月份:month.abbmonth.name。希腊字母(小写和大写)和一些数学符号可以通过?plotmath中描述的方法访问。

如Tyler所述,state.namestate.abb实际上是默认加载的“datasets”包中(美国)state数据集的一部分:

library(help="datasets")

如果您看到一个使用carschickwtsiris或其他"dataframes"中的示例,就像许多help()示例一样,这些对象可以假定在任何R用户的机器上都可用。


4
请注意,在全局环境中锁定绑定并不能防止另一个环境中的值掩盖它。例如,f <- function() { T <- FALSE; T }; f() 可以正常运行并返回 FALSE,即使在全局环境中 T <- TRUE 并已被锁定。 - G. Grothendieck
除了在“常量”中描述的常量之外,还有使用state.namestate.abb表示的州名和缩写。 - Tyler Rinker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接