es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo pasar una lista de nombres de variables juntas a una función

Estoy tratando de construir una regresión lineal con cientos de términos de interacción. Ahora los estoy escribiendo manualmente en la ecuación.

model <- lm(Y ~ A + B + C + A*X1 + A*X2 + A*X3+...+A*X100 + B*X1 + B*X2 + B*X3...+B*X100, data)

¿Existe alguna forma de codificar esto de manera más eficiente? Estoy pensando en algo como:

Group <- X1 + X2 + X3+ ... + X99 + X100
model <- lm(Y~ A + B + C + A*Group + B*Group)

¿Es posible lograr esto en R con algún paquete o función?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible codificar esto de manera más eficiente en R utilizando la notación . para representar todas las variables restantes en el conjunto de datos. Aquí hay un ejemplo:

    modelo <- lm(Y ~ A + B + C + A*X1 + A*X2 + A*X3 + ... + A*X100 + B*X1 + B*X2 + B*X3 + ... + B*X100 + ., datos)
    

    Este código incluirá todas las variables restantes en el conjunto de datos (excluyendo Y, A, B y C) en el modelo. Alternativamente, puedes utilizar la notación : para representar las interacciones entre predictores, de la siguiente manera:

    modelo <- lm(Y ~ (A + B + C) * (X1 + X2 + X3 + ... + X100), datos)
    

    Este código creará interacciones entre todas las combinaciones de A, B y C con todas las combinaciones de X1 a X100. Ambos enfoques son más eficientes y menos propensos a errores que escribir manualmente todos los términos de interacción.

Comments are closed.