[R-br] Empilhar data-frames com colunas diferentes
Benilton Carvalho
beniltoncarvalho em gmail.com
Segunda Agosto 20 17:37:22 BRT 2012
o problema nao esta' completamente definido... por exemplo, o q e' pra
acontecer se vc tiver um registro em d1 que tenha os mesmos valores
para 'a', 'b' e 'c' em d2?
minha solucao comecaria com
merge(d1, d2, all=TRUE)
b
2012/8/20 Paulo Nogueira <paulons em gmail.com>:
> Boa tarde grupo!
>
> Estou com um problema que acredito ser bastante simples de resolver, porém,
> pesquisei e ainda não encontrei alternativa prática.
> A grosso modo, quero empilhar bases para formar uma única. O problema é que
> elas não possuem o mesmo layout. Todas possuem algumas colunas em comum e
> outras não. Quando uma base não possuir determinada coluna gostaria de
> deixar NA nos registros oriundos dessa base.
>
> Para quem conhece SAS, procuro o resultado de fazer simplesmente:
> DATA base_final;
> SET Base1
> Base2;
> RUN;
>
> No R ainda não consigo utilizar a função rbind com o mesmo resultado.
>
> Segue exemplo para reprodução.
> # Exemplo
>
> d1<-data.frame(index=1,a=1,b=91)
> d2<-data.frame(index=1,b=92,a=2,c=200)
> rbind.data.frame(d1,d2)
> Erro em rbind.data.frame(d1, d2) :
> números de colunas dos argumentos não correspondem
>
>
> O resultado que desejo é
> index a b c
> 1 1 91 NA
> 1 2 92 200
>
> O rbind troca a posição das colunas baseada nos nomes. Isso ajuda. Mas não
> sei como fazer funcionar quando algumas colunas estão apenas em algumas
> bases, o que no exemplo acontece com a coluna c da base d2.
> Como vocês fariam?
>
> Abraços,
> Paulo Nogueira Starzynski
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
Mais detalhes sobre a lista de discussão R-br