Hola, buenos días: No es un problema concreto que tenga ahora, pero es un problema general que no se si tiene solución fácil. Hago una regresión (de lm.html): ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2, 10, 20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) Si quiero que la variable independiente sea una "variable", y hago: X = "group" lm.D9 <- lm(weight ~ X) Y da el error: Error in model.frame.default(formula = XVD ~ group, drop.unused.levels = TRUE) : variable lengths differ (found for 'group') Ya que, como me decían el otro día "estás asignando a la variable X el valor "X" y no el contenido de la variable X." ¿No hay forma de que entienda que "X" es el nombre de la variable independiente "group", que no sea pasar la posición de la variable? Muchas gracias y saludos a todos.
Hola: Creo que lo que quieres es esto: lm.D9 <- lm(weight ~ get(X)) Saludos, Marcelino El 18/11/2021 a las 12:03, Griera escribió:> Hola, buenos días: > > No es un problema concreto que tenga ahora, pero es un problema general > que no se si tiene solución fácil. Hago una regresión (de lm.html): > > ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) > trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) > group <- gl(2, 10, 20, labels = c("Ctl","Trt")) > weight <- c(ctl, trt) > lm.D9 <- lm(weight ~ group) > > Si quiero que la variable independiente sea una "variable", y hago: > > X = "group" > lm.D9 <- lm(weight ~ X) > > Y da el error: Error in model.frame.default(formula = XVD ~ group, drop.unused.levels = TRUE) : > variable lengths differ (found for 'group') > > Ya que, como me decían el otro día "estás asignando a la variable X el valor "X" y no el > contenido de la variable X." > > ¿No hay forma de que entienda que "X" es el nombre de la variable independiente "group", que no sea pasar la posición de la variable? > > Muchas gracias y saludos a todos. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > .-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España
Buenas, a ver si esto te sirve: ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2, 10, 20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) dd <- data.frame(weight = weight, group = group, ctl = ctl, trt=trt) model <- "dd$weight ~ dd$group" summary(lm(model)) Únicamente tendrías que construir previamente la fórmula con paste. La salida es: Call: lm(formula = model) Residuals: Min 1Q Median 3Q Max -1.0710 -0.4938 0.0685 0.2462 1.3690 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 5.0320 0.2202 22.850 9.55e-15 *** dd$groupTrt -0.3710 0.3114 -1.191 0.249 --- Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 Residual standard error: 0.6964 on 18 degrees of freedom Multiple R-squared: 0.07308, Adjusted R-squared: 0.02158 F-statistic: 1.419 on 1 and 18 DF, p-value: 0.249 Un saludo. El jue, 18-11-2021 a las 12:03 +0100, Griera escribió:> Hola, buenos días: > > No es un problema concreto que tenga ahora, pero es un problema general > que no se si tiene solución fácil. Hago una regresión (de lm.html): > > ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) > trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) > group <- gl(2, 10, 20, labels = c("Ctl","Trt")) > weight <- c(ctl, trt) > lm.D9 <- lm(weight ~ group) > > Si quiero que la variable independiente sea una "variable", y hago: > > X = "group" > lm.D9 <- lm(weight ~ X) > > Y da el error: Error in model.frame.default(formula = XVD ~ group, > drop.unused.levels = TRUE) : > variable lengths differ (found for 'group') > > Ya que, como me decían el otro día "estás asignando a la variable X el > valor "X" y no el > contenido de la variable X." > > ¿No hay forma de que entienda que "X" es el nombre de la variable > independiente "group", que no sea pasar la posición de la variable? > > Muchas gracias y saludos a todos. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es