Faz assim na última linha: dados2<-data.frame(dia.2,local.2,apply(dados[,3:4],2,function(x) ifelse((dia.2%in%dia)&(local.2%in%local),x,NA)),stringsAsFactors=F)
dados2<-apply(dados2,2,function(x)type.convert(x)) 2012/12/1 Taynãna César Simões <[email protected]> > Só um detalhe: com a sugestão do Daniel aparece um novo problema que é, as > variáveis numéricas que já tinham NA no banco original, passam a fatores... > > *De:* Daniel C Bezerra <[email protected]> > *Para:* [email protected] > *Enviadas:* Sábado, 1 de Dezembro de 2012 15:30 > *Assunto:* Re: [R-br] Como criar data.frame com linhas contendo NA's > > 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. > > > _______________________________________________ > 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.
