R中的通用常数

bio*_*eek 20 statistics r

这听起来像一个基本的问题但是...我如何使用R的通用常量?

我曾经习惯于在matlab中编写e或PI,并且这些变量是为通用常量保留的.R中也有这些吗?如何访问/使用它们?

谢谢

42-*_*42- 26

pi(注意小写)是定义但e不是,虽然exp(1)显然是可用的.

pi
# [1] 3.141593
Run Code Online (Sandbox Code Playgroud)

描述了少量的内置常量:

?Constants
Run Code Online (Sandbox Code Playgroud)

用这段代码可以解决这个缺乏问题的问题:

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

(感谢Hadley在不同的SO线程中说明这一点.)你可能也应该去:

?NumericConstants
Run Code Online (Sandbox Code Playgroud)

你会在其他地方读到的地方:"紧跟着i的数字常数被认为是一个虚构的复数."

另一个重要的常数TRUEFALSE,虽然TF能在一个干净的会话中使用,TF不是保留,并且可以指定其他值,那么这将引发难以调试的错误,所以建议使用它们.(虽然,我想也可以使用lockBinding它们的策略.)

有一些字符"常量",例如26项字符向量:letters,LETTERS以及您的语言环境中的12个月:month.abbmonth.name.希腊字母(大写和小写)和一些数学符号可以通过中描述的方法访问?plotmath.

state.namestate.abb由泰勒下面提到实际上是(USA)的一部分state,其中在默认情况下加载的"数据集"包数据集:

library(help="datasets")
Run Code Online (Sandbox Code Playgroud)

如果你看到一个使用一个例子cars,chickwts,iris或任何"数据集"其他dataframes的,因为很多help()的例子做,这些对象可以被认为是任何可用的[R用户的机器上.

  • 请注意,在全局环境中锁定绑定不会阻止在另一个环境中屏蔽该值.例如`f < - function(){T < - FALSE; T}; f()`运行时没有错误或警告,即使在全局环境中"T < - TRUE"并且已被锁定,也返回"FALSE". (4认同)