Eu faria assim: dia<-c(1,2,4,1,4) local<-c(1,1,1,2,2) dado1<-c(0.10,0.15,0.20,0.27,0.15) dado2<-c(15,16,20,23,25) dados<-data.frame(dia,local,dado1,dado2) dia.2<-rep(1:4,2) local.2<-rep(c(1,2),each=4)
data.frame(dia.2,local.2,apply(dados[,3:4],2,function(x) ifelse((dia.2%in%dia)&(local.2%in%local),x,NA))) dia.2 local.2 dado1 dado2 1 1 1 0.10 15 2 2 1 0.15 16 3 3 1 NA NA 4 4 1 0.27 23 5 1 2 0.15 25 6 2 2 0.10 15 7 3 2 NA NA 8 4 2 0.20 20 Abs, Daniel 2012/12/1 Rodrigo Coster <[email protected]> > Usando merge() e expand.grid() da pra fazer, mas se o número de > combinações semana-locais for muito grande talvez haja uma solução mais > viável > > dados <- matrix(scan(),ncol=4,byrow=T) > 1 1 0.10 15 > 2 1 0.15 16 > 4 1 0.20 20 > 1 2 0.27 23 > 4 2 0.15 25 > > dados <- data.frame(dados) > names(dados) <- c('dia','local','dado1','dado2') > > # Supondo 4 dias e 2 locais: > tudo <- expand.grid(dia=1:4,local=1:2) > > merge(dados,tudo,all.x=T,all.y=T) > > > []'s > > > > 2012/12/1 Taynãna César Simões <[email protected]> > >> Pessoal, >> >> Tentei fazer 'for' dentro de 'for', mas está ficando complicado. >> Suponham que tenho um data.frame com dados espaco-tempo irregulares: >> foram coletados. >> >> dia local dado1 dado2 >> 1 1 0.10 15 >> 2 1 0.15 16 >> 4 1 0.20 20 >> 1 2 0.27 23 >> 4 2 0.15 25 >> >> Preciso criar um data.frame full, completando os dados com NA´s, tipo: >> >> dia local dado1 dado2 >> 1 1 0.10 15 >> 2 1 0.15 16 >> 3 1 NA NA >> 4 1 0.20 20 >> 1 2 0.27 23 >> 2 2 NA NA >> 3 2 NA NA >> 4 2 0.15 25 >> >> Tenho dezenhas de semanas e centenas de locais observados, além de várias >> covariáveis. >> >> Alguma sugestão? >> Obrigada. >> >> Att, Taynãna >> Fiocruz/RJ >> >> _______________________________________________ >> R-br mailing list >> [email protected] >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > [email protected] > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
