2011-12-03 9 views
18

Esto va a sonar como una pregunta básica, pero ... ¿Cómo uso las constantes universales con R?constantes universales en R

Estaba acostumbrado a poder simplemente escribir e o PI en matlab, y estas variables estaban reservadas para las constantes universales. ¿Están disponibles en R también? ¿Cómo acceder/usarlos?

Gracias

+0

Vea también: http://stackoverflow.com/q/8087407/269476 – James

Respuesta

26

pi (tenga en cuenta la minúscula) se define, pero no es e, aunque exp (1) es obviamente disponible.

pi 
# [1] 3.141593 

El pequeño número de constantes integradas se describen:

?Constants 

Sería posible curar este problema de falta de correo con este código:

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

(Gracias a Hadley por ilustrar esto en un hilo SO diferente). Probablemente también deberías ir a:

?NumericConstants 

Donde leerá entre otras cosas: "Una constante numérica inmediatamente seguida por i se considera un número complejo imaginario".

Las otras constantes importantes son TRUE y FALSE, y mientras T y F se pueden utilizar en una sesión limpia, T y F no están reservados y se pueden asignar otros valores, que a su vez provocará difíciles de depurar errores, por lo que su el uso está en desuso (Aunque, supongo que también se podría utilizar la estrategia lockBinding en ellos también.)

Hay unos pocos caracteres "constantes", tales como los vectores de caracteres 26 del artículo: letters, LETTERS, así como 12 meses en su configuración regional: month.abb y month.name. Se puede acceder a las letras griegas (mayúsculas y minúsculas) y algunas notación matemática a través de los métodos descritos en ?plotmath.

El state.name y state.abb mencionado por Tyler a continuación son en realidad parte de la (EE.UU.) state conjunto de datos en el paquete de "datos" que se carga por defecto:

library(help="datasets") 

Si ve un ejemplo que utiliza la cars , chickwts, iris o cualquiera de los otros dataframes en "datasets", como lo hacen muchos ejemplos de help(), se puede suponer que estos objetos están disponibles en cualquier máquina de usuario R.

+4

Tenga en cuenta que bloquear un enlace en el entorno global no impide que se enmascare el valor en otro entorno. p.ej. 'f <- function() {T <- FALSE; T}; f() 'se ejecuta sin error o advertencia y devuelve' FALSE' incluso si 'T <- TRUE' en el entorno global y se ha bloqueado allí. –

+0

Además de las constantes que se describen en? Constantes también hay nombres de estado y abreviaturas con 'state.name' y' state.abb' –