2011-12-03 14 views
18

Sembrerà una domanda di base ma ... Come utilizzare le costanti universali con R?costanti universali in R

Ero abituato a scrivere solo e o PI in MATLAB e queste variabili erano riservate alle costanti universali. Anche quelli sono disponibili in R? Come accedervi/usarli?

Grazie

+0

Vedere anche: http://stackoverflow.com/q/8087407/269476 – James

risposta

26

pi (notare il minuscolo) è definito ma e non è, anche se exp (1) è ovviamente disponibile.

pi 
# [1] 3.141593 

Il piccolo numero di costanti built-in sono descritti:

?Constants 

Sarebbe possibile per curare questo problema la mancanza-di-e con questo codice:

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

(Grazie a Hadley per averlo illustrato in un thread SO diverso.) Probabilmente dovresti anche andare a:

?NumericConstants 

Dove leggerete tra le altre cose: "Una costante numerica immediatamente seguita da i è considerata un numero complesso immaginario."

Le altre costanti importanti sono TRUE e FALSE, e mentre T e F possono essere utilizzati in una sessione pulita, T e F non sono riservati e possono essere assegnati altri valori, che poi provocherà difficile da errori di debug, quindi il loro l'uso è deprecato. (Anche se, suppongo che si potrebbe anche utilizzare la strategia lockBinding su di loro pure.)

ci sono un personaggio alcune "costanti", come ad esempio i vettori di caratteri 26 voce: letters, LETTERS, così come i 12 mesi nel locale: month.abb e month.name. Le lettere greche (maiuscole e minuscole) e alcune note matematiche sono accessibili tramite i metodi descritti in ?plotmath.

Il state.name e state.abb citato da Tyler seguito sono in realtà parte del (USA) state set di dati nel pacchetto "set di dati", che viene caricato di default:

library(help="datasets") 

Se vedete un esempio che utilizza il cars , chickwts, iris o uno qualsiasi degli altri dataframes in "dataset", come molti esempi di help(), questi oggetti possono essere considerati disponibili su qualsiasi macchina dell'utente R.

+4

Si noti che il blocco di un'associazione nell'ambiente globale non impedisce di mascherare il valore in un altro ambiente. per esempio. 'f <- function() {T <- FALSE; T}; f() 'gira senza errori o avvisi e restituisce' FALSE' anche se 'T <- TRUE' nell'ambiente globale ed è stato bloccato lì. –

+0

In aggiunta alle costanti descritte in Costanti, ci sono anche nomi di stati e abbreviazioni con 'state.name' e' state.abb' –