Buenas a todos, acá estoy yo de nuevo con problemas de loops.
Tengo el siguiente problema: un vector de datos (y) y una serie de
efectos. El loop lo que intenta es evaluar el R² de modelos
incrementando por vuelta una variable efecto.
Seria algo así:
for(i in 1:x) {
modelo=lm(y~efectos[,1:i])
... codigo para guardar R² y otros por cada vuelta...
}
apply() puede ir columna a columna pero no sé como hacer para que me
vaya "acumulando columnas" por así decir. De echo no se si puede
hacer.
Espero haberme explicado y como siempre agradezco de antemano la atención.
Un abrazo!
--
Fernando Macedo
Hola Fernando,
Podrias considerar las siguientes opciones:
R2 <- vector("list", x)
for(i in 1:x){
modelo <- lm(y ~ efectos[, 1:i])
R2[[i]] <- summary(modelo)$r.squared
}
R2
?opt2 <- sapply(1:x, ?function(i){
modelo <- lm(y ~ efectos[, 1:i])
summary(modelo)$r.squared
})
opt2
Para mas información revisa ?sapply, ?lapply y ?lm. En caso de que
necesites otros parámetros del modelo de regresión, te sugiero revisar el
resultado de
modelo <- lm(y ~ efectos[, 2])
names(summary(modelo))
Saludos cordiales,
Jorge Velez
JCSMR, Canberra
2015-07-04 12:01 GMT+10:00 Fernando Macedo <fermace en gmail.com>:
> Buenas a todos, acá estoy yo de nuevo con problemas de loops.
>
> Tengo el siguiente problema: un vector de datos (y) y una serie de
> efectos. El loop lo que intenta es evaluar el R² de modelos incrementando
> por vuelta una variable efecto.
>
> Seria algo así:
>
> for(i in 1:x) {
> modelo=lm(y~efectos[,1:i])
> ... codigo para guardar R² y otros por cada vuelta...
> }
>
> apply() puede ir columna a columna pero no sé como hacer para que me vaya
> "acumulando columnas" por así decir. De echo no se si puede
hacer.
>
> Espero haberme explicado y como siempre agradezco de antemano la atención.
>
> Un abrazo!
>
> --
> Fernando Macedo
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
[[alternative HTML version deleted]]
Muchas gracias Jorge! Si la opción del loop con for ya la tenía implementada y me demora bastante por eso quería probar con apply o en este caso sapply, muchas gracias! Saludos!! F Macedo El 03/07/15 a las 23:09, Jorge I Velez escribió:> Hola Fernando, > > Podrias considerar las siguientes opciones: > > R2 <- vector("list", x) > for(i in 1:x){ > modelo <- lm(y ~ efectos[, 1:i]) > R2[[i]] <- summary(modelo)$r.squared > } > R2 > > ? opt2 <- sapply(1:x, ?function(i){ > modelo <- lm(y ~ efectos[, 1:i]) > summary(modelo)$r.squared > }) > opt2 > > Para mas información revisa ?sapply, ?lapply y ?lm. En caso de que > necesites otros parámetros del modelo de regresión, te sugiero revisar > el resultado de > > modelo <- lm(y ~ efectos[, 2]) > names(summary(modelo)) > > Saludos cordiales, > > Jorge Velez > JCSMR, Canberra > > > 2015-07-04 12:01 GMT+10:00 Fernando Macedo <fermace en gmail.com > <mailto:fermace en gmail.com>>: > > Buenas a todos, acá estoy yo de nuevo con problemas de loops. > > Tengo el siguiente problema: un vector de datos (y) y una serie de > efectos. El loop lo que intenta es evaluar el R² de modelos > incrementando por vuelta una variable efecto. > > Seria algo así: > > for(i in 1:x) { > modelo=lm(y~efectos[,1:i]) > ... codigo para guardar R² y otros por cada vuelta... > } > > apply() puede ir columna a columna pero no sé como hacer para que > me vaya "acumulando columnas" por así decir. De echo no se si > puede hacer. > > Espero haberme explicado y como siempre agradezco de antemano la > atención. > > Un abrazo! > > -- > Fernando Macedo > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]