Uso de ~ (tilde) en el lenguaje de programación R

Resuelto Ankita asked hace 54 años • 3 respuestas

Vi en un tutorial sobre modelado 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 la función de ~(tilde) en el comando?

Ankita avatar Jan 01 '70 08:01 Ankita
Aceptado

Lo que está a la derecha de <-es un formulaobjeto. A menudo se utiliza para denotar un modelo estadístico, donde lo que está a la izquierda de ~es la respuesta y lo que está a la derecha ~son las variables explicativas. Entonces, en inglés dirías algo como "La especie depende de la longitud del sépalo, el ancho del sépalo, la longitud del pétalo y el ancho del pétalo" .

La myFormula <-parte de esa línea almacena la fórmula en un objeto llamado myFormulapara que puedas usarla en otras partes de tu código R.


Otros usos comunes de los objetos de fórmula en R

El latticepaquete los utiliza para especificar las variables a trazar .
El ggplot2paquete los utiliza para especificar paneles para trazar .
El dplyrpaquete los utiliza para una evaluación no estándar .

Spacedman avatar Feb 20 '2013 09:02 Spacedman

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 sea el de regresión:

library(datasets)
lm( myFormula, data=iris)

help("~")o help("formula")te enseñará más.

@Spacedman ha cubierto los conceptos básicos. Analicemos cómo funciona.

Primero, al ser un operador, tenga en cuenta que es esencialmente un atajo a una función (con dos argumentos):

> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs

Puede resultar útil saberlo para utilizarlo, por ejemplo, en applycomandos familiares.

En segundo lugar, puedes manipular la fórmula como texto :

oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )

En tercer lugar, puedes manipularlo como una lista :

myFormula[[2]]
myFormula[[3]]

Finalmente, hay algunos trucos útiles con fórmulas (consulte help("formula")para obtener más información):

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 analiza el data.frame que utiliza en su eventual llamada al modelo, 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 que faltan.

Ari B. Friedman avatar Feb 20 '2013 11:02 Ari B. Friedman

En una palabra,

The tilde(~) separates the left side of a formula with the right side of the formula.

Por ejemplo, en una función lineal, separaría la variable dependiente de las variables independientes y puede interpretarse como "en función de". Entonces, cuando los salarios (salarios) de una persona son una función de sus años de educación (años_de_educación), hacemos algo como,

wages ~ years_of_education

Aquí,

 Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

Es decir, Specieses una función de Sepal Length, Sepal Width, Petal Length and Petal Width.

ashraful16 avatar Mar 21 '2021 04:03 ashraful16