[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