[R-es] Función assign y paste0 en un loop
Isa García Barón
xanamb en gmail.com
Mie Feb 4 11:07:48 CET 2015
Hola, espero explicar bien el problema que tengo.
Estoy intentando hacer loops para glm's. El problema vieneal nombrar cada
glm de una manera y realizar la seleccion por AIC mediante la función step.
Cuando realizo los glm utilizo las funcion assign y paste0, para nombrar a
cada uno distinto:
asssign(paste0("glm",i),glm(ap~V1+V2+V3+V4+V5,data=datos,family =
binomial(link=logit)))
Después, lo que pretendo es realizar la selección por AIC, mediante la
función step para cada glm credo anteriormente y ahí viene el problema, no
se cómo decirle que me haga el step para cada glm con cada nombre creado
anteriormente:
assign(paste0("glmstep",i),step("glm",i)
Error: unexpected symbol in:
"assign(paste0("glmstep",i),step("glm",i)
todosres"
Necesito hacer esto para extraer los coeficientes de todos los glm finales
seleccionados, en esta parte supongo que también tendré el mismo problema...
A continuación el script completo:
nes <- read.csv('C:/Aegmon/nes.csv', sep=';', header=T)
nreps=5
#selecting all rows with presences
index1=which(nes$ap==1)
np=length(index1)
#create object to holdall results of predicting the probability
#of the observation left out
todosres=matrix(0,nrow=nt,ncol=nreps)
for (i in 1:np){
datos=nesting[-index1[i],]
datosp=datos[datos$ap==1,]
datosa=datos[datos$ap==0,]
ndatosa=nrow(datosa)
for (j in 1:nreps) {
datosarand=datosa[sample(ndatosa,size=np,replace=FALSE),]
newsamp=rbind(datosp,datosarand)
asssign(paste0("glm",i),glm(ap~V1+V2+V3+V4+V5,data = datos,family =
binomial(link=logit)))
save(list=paste0("glm",i),file=paste0("resultsglm/glm",i,".Rdata"))
assign(paste0("glmstep",i),step("glm",i)
todosres[,j]=predict.glm(object=glmtempstep,newdata=nes,type="response")
}
}
coeffsglm=matrix(0,nrow=nt,ncol=9)
for (i in 1:nt){
coeffsglm[j,]=as.numeric(eval(parse(text=paste0("glmstep",i,"$coefficients"))))
}
Espero haberme explicado bien, muchas gracias
Un saludo
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es