Vi en un tutorial sobre el modelo de regresión el siguiente comando:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
¿Qué hace exactamente este comando y cuál es el papel de ~
(tilde) en el comando?
Vi en un tutorial sobre el modelo de regresión el siguiente comando:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
¿Qué hace exactamente este comando y cuál es el papel de ~
(tilde) en el comando?
Respuestas:
La cosa a la derecha de <-
es un formula
objeto. A menudo se usa para denotar un modelo estadístico, donde la cosa a la izquierda de ~
la respuesta es la respuesta y las cosas a la derecha de la~
variable explicativa. Entonces, en inglés, diría algo como "La especie depende de la longitud del sepal, el ancho del sepal, la longitud del pétalo y el ancho del pétalo" .
los myFormula <-
parte de esa línea almacena la fórmula en un objeto llamado myFormula
para que pueda usarla en otras partes de su código R.
Otros usos comunes de objetos de fórmula en R
El lattice
paquete los usa para especificar las variables a trazar .
El ggplot2
paquete los usa para especificar paneles para el trazado .
El dplyr
paquete los usa para la evacuación no estándar .
lazyeval
viñeta ofrece una buena introducción a lo que es una fórmula
R define un ~
operador (tilde) para usar en fórmulas. Las fórmulas tienen todo tipo de usos, pero quizás el más común es para la regresión:
library(datasets)
lm( myFormula, data=iris)
help("~")
o help("formula")
te enseñaré más.
@Spacedman ha cubierto los conceptos básicos. Discutamos cómo funciona.
Primero, al ser un operador, tenga en cuenta que es esencialmente un acceso directo a una función (con dos argumentos):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
Puede ser útil saberlo para usar, por ejemplo, en apply
comandos familiares.
En segundo lugar, puede manipular la fórmula como texto :
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
Tercero, puedes manipularlo como una lista :
myFormula[[2]]
myFormula[[3]]
Finalmente, hay algunos trucos útiles con fórmulas (ver help("formula")
más):
myFormula <- Species ~ .
Por ejemplo, la versión anterior es la misma que la versión original, ya que el punto significa "todas las variables aún no utilizadas". Esto examina el data.frame que usa en su eventual modelo de llamada, ve qué variables existen en el data.frame pero no se mencionan explícitamente en su fórmula, y reemplaza el punto con esas variables faltantes.
Species~.
, especie es la única variable que se ha utilizado. Por lo tanto, depende de cualquier otra variable en el data.frame.
myFormula <- Species ~ .
. Cuando el punto todavía se sustituye con variables de data.frame? ¿Podría dar un ejemplo