
Boa noite! Tenho uma base, 1989-2010, sem observações para alguns anos. Por exemplo, ano ido idd code valor 2008 bra arg 0101 10 2007 bra pry 8508 20 2010 bra ury 1011 5 1992 bra swe 7989 30 1995 bra pry 8508 15 Sendo assim, gostaria de gerar tais observações. Ou seja, ano ido idd code valor 1989 bra arg 0101 0 1989 bra pry 8508 0 1989 bra ury 1011 0 1989 bra swe 7989 0 . . . . . . . . . . . . . . . 1995 bra arg 0101 0 1995 bra ury 1011 0 1995 bra swe 7989 0 Isto é, para o ano de 1995 há informações para: ido=bra e idd=pry. Então, não precisa ser gerada. Alguém poderia me ajudar? Desde já muito obrigado! -- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE Site: www.ccsa.ufpb.br/ppge

Uma possibilidade seria # usar expand.grid para criar todas as possibilidades, depois comparar com um unique dos seus dados #para criar suas possibilidades possibilidades<-expand.grid(ano=seq(2013,2015,1),local=c("arg","pry","uri")) #gerando alguns dados de exemplo, veja que ta faltando dados<-data.frame(possibilidades[sample(1:8,30,replace=T),],medidas=rnorm(30)) #olhando os dados dados[,1:2] #compare com as possibilidades, não existe 2015 em uri unique(dados[,1:2]) possibilidades #mas como descobrir isso, uma possibilidade talvez pouco eficiente #junte as planilhas que conseguiu com o unique e possibilidades juntos<-rbind(unique(dados[,1:2]), possibilidades) #agora como o duplicado é a segunda planilha, use duplicated para ver linhas duplicadas duplicado<-duplicated(rbind(unique(dados[,1:2]), possibilidades)) #separe somente para as possibilidades, quem está duplicado(quem existe nos dados originais) selecao<-duplicado[(nrow(unique(dados[,1:2]))+1):length(duplicado)] #agora é so inverter a seleção, quem não existe para as possibilidades possibilidades[!selecao,] Deve ter funções prontas para isso, mas da para quebrar o galho assim. Use unique por atributos e expandegrid para montar todas as possibilidades Espero ter ajudado Em 25 de maio de 2015 23:45, Alexandre Loures <alexandre.loures@ymail.com> escreveu:
Boa noite!
Tenho uma base, 1989-2010, sem observações para alguns anos. Por exemplo,
ano ido idd code valor 2008 bra arg 0101 10 2007 bra pry 8508 20 2010 bra ury 1011 5 1992 bra swe 7989 30 1995 bra pry 8508 15
Sendo assim, gostaria de gerar tais observações. Ou seja,
ano ido idd code valor 1989 bra arg 0101 0 1989 bra pry 8508 0 1989 bra ury 1011 0 1989 bra swe 7989 0 . . . . . . . . . . . . . . .
1995 bra arg 0101 0 1995 bra ury 1011 0 1995 bra swe 7989 0
Isto é, para o ano de 1995 há informações para: ido=bra e idd=pry. Então, não precisa ser gerada.
Alguém poderia me ajudar?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE Site: www.ccsa.ufpb.br/ppge
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056

Obrigado pessoal! Deu certo. On 26/05/2015 11:14, Augusto Ribas wrote:
Uma possibilidade seria
# usar expand.grid para criar todas as possibilidades, depois comparar com um unique dos seus dados
#para criar suas possibilidades possibilidades<-expand.grid(ano=seq(2013,2015,1),local=c("arg","pry","uri"))
#gerando alguns dados de exemplo, veja que ta faltando dados<-data.frame(possibilidades[sample(1:8,30,replace=T),],medidas=rnorm(30))
#olhando os dados dados[,1:2]
#compare com as possibilidades, não existe 2015 em uri unique(dados[,1:2]) possibilidades
#mas como descobrir isso, uma possibilidade talvez pouco eficiente #junte as planilhas que conseguiu com o unique e possibilidades juntos<-rbind(unique(dados[,1:2]), possibilidades)
#agora como o duplicado é a segunda planilha, use duplicated para ver linhas duplicadas duplicado<-duplicated(rbind(unique(dados[,1:2]), possibilidades))
#separe somente para as possibilidades, quem está duplicado(quem existe nos dados originais) selecao<-duplicado[(nrow(unique(dados[,1:2]))+1):length(duplicado)]
#agora é so inverter a seleção, quem não existe para as possibilidades possibilidades[!selecao,]
Deve ter funções prontas para isso, mas da para quebrar o galho assim. Use unique por atributos e expandegrid para montar todas as possibilidades Espero ter ajudado
Em 25 de maio de 2015 23:45, Alexandre Loures <alexandre.loures@ymail.com <mailto:alexandre.loures@ymail.com>> escreveu:
Boa noite!
Tenho uma base, 1989-2010, sem observações para alguns anos. Por exemplo,
ano ido idd code valor 2008 bra arg 0101 10 2007 bra pry 8508 20 2010 bra ury 1011 5 1992 bra swe 7989 30 1995 bra pry 8508 15
Sendo assim, gostaria de gerar tais observações. Ou seja,
ano ido idd code valor 1989 bra arg 0101 0 1989 bra pry 8508 0 1989 bra ury 1011 0 1989 bra swe 7989 0 . . . . . . . . . . . . . . .
1995 bra arg 0101 0 1995 bra ury 1011 0 1995 bra swe 7989 0
Isto é, para o ano de 1995 há informações para: ido=bra e idd=pry. Então, não precisa ser gerada.
Alguém poderia me ajudar?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE Site: www.ccsa.ufpb.br/ppge <http://www.ccsa.ufpb.br/ppge>
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.com.br/ Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________ 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.
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE Site: www.ccsa.ufpb.br/ppge

se entendi bem df1 <- expand.grid(unique(df$ano),unique(df$ido),unique(df$idd),unique(df$code)) df3 <- merge(df1,df,by=c('ano','ido','idd','code'),all.x=T) df3$valor[is.na(df3$valor)] <- 0

Muito obrigado! Deu certo. On 26/05/2015 11:18, Leandro Marino wrote:
se entendi bem
df1 <- expand.grid(unique(df$ano),unique(df$ido),unique(df$idd),unique(df$code)) df3 <- merge(df1,df,by=c('ano','ido','idd','code'),all.x=T) df3$valor[is.na <http://is.na>(df3$valor)] <- 0
_______________________________________________ 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.
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE Site: www.ccsa.ufpb.br/ppge
participantes (3)
-
Alexandre Loures
-
Augusto Ribas
-
Leandro Marino