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))
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 <danielcbezerra@gmail.com>
Para: r-br@listas.c3sl.ufpr.br
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 <rcoster@gmail.com>
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áveldados <- matrix(scan(),ncol=4,byrow=T)1 1 0.10 152 1 0.15 164 1 0.20 201 2 0.27 234 2 0.15 25dados <- 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 <tay_estatistica@yahoo.com.br>_______________________________________________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 dado21 1 0.10 152 1 0.15 164 1 0.20 201 2 0.27 234 2 0.15 25Preciso criar um data.frame full, completando os dados com NA´s, tipo:dia local dado1 dado21 1 0.10 152 1 0.15 163 1 NA NA4 1 0.20 201 2 0.27 232 2 NA NA3 2 NA NA4 2 0.15 25Tenho dezenhas de semanas e centenas de locais observados, além de váriascovariáveis.Alguma sugestão?Obrigada.Att, TaynãnaFiocruz/RJ
R-br mailing list
R-br@listas.c3sl.ufpr.br
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
R-br@listas.c3sl.ufpr.br
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
R-br@listas.c3sl.ufpr.br
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
R-br@listas.c3sl.ufpr.br
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.