Il problema qui è come interpretare le formule. In una formula la tilde separa il lato sinistro dal lato destro. Nelle formule l'operatore ^
è per la costruzione di interazioni in modo che x
= x^2
= x^3
anziché la potenza matematica probabilmente prevista. Se avevi digitato (x+y)^2
l'interprete R avrebbe prodotto (per il suo buon uso interno), non una matematica: x^2 +2xy +y^2
, ma piuttosto un simbolico: x + y +x:y
dove x:y
è un termine di interazione.
?formula
La funzione I()
agisce per convertire l'argomento "as.is", vale a dire ciò che vi aspettate. Quindi I (x^2) restituirebbe un vettore di valori elevato alla seconda potenza.
Il ~
deve essere pensato come dire "è distribuito come" o "dipende da" quando viene visualizzato nelle funzioni di regressione. Implica un termine di errore nelle descrizioni dei modelli che saranno generalmente etichettati come "(Intercetta)" e il contesto e gli argomenti della funzione possono anche determinare ulteriormente una funzione di collegamento come log() o logit().
Nelle funzioni plot() - ting esso inverte fondamentalmente il solito ordine di argomenti (x, y)
che la funzione di stampa solitamente impiega. C'era un metodo plot.formula scritto in modo che le formule potessero essere usate come una modalità più "matematica" di comunicazione con R. Nelle funzioni graphics::plot.formula
, curve
, e 'reticolo' e 'ggplot', governa come più fattori o vettori numerici sono visualizzati e "sfaccettati".
Ho appreso in seguito che ~
è in realtà una funzione primitiva infisso (o prefisso) che crea una "chiamata" R a cui è possibile accedere con operatori di estrazione di elenchi. Tutto ciò è nascosto all'utente tipico, ma può essere una funzione utilizzata dagli autori di funzioni più avanzate.
Il sovraccarico dell'operatore "+" è discusso nei commenti seguenti e viene anche eseguito nei pacchetti di plottaggio: ggplot2 e gridExtra dove separa le funzioni che forniscono i risultati dell'oggetto, quindi che agisce e come un pass-through e operatore di stratificazione. Le funzioni di aggregazione che hanno un metodo formula usano "+" come un "arrangiamento" e un operatore di raggruppamento.
fonte
2011-11-08 18:59:09
Qualsiasi risposta eccellente a questa domanda si baserà su ciò che è contenuto in '? Formula'. – joran
Duplicato; dovremmo chiudere uno di questi e rendere l'altro canonico: [cosa significa la lettera maiuscola "I" nella formula di regressione lineare R?] (http://stackoverflow.com/questions/24192428/capital-letter-i-in- r-linear-regression) – smci