[R-br] Empilhar data-frames com colunas diferentes

Paulo Nogueira paulons em gmail.com
Segunda Agosto 20 16:59:12 BRT 2012


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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120820/c3157c76/attachment.html>


Mais detalhes sobre a lista de discussão R-br