2015-11-20 21 views
5

Küresel ortamımda 4 adet veri tabanım var. Bunlar propens1, propens2, propens3 ve propens4 olarak adlandırılır. "Bmi" adlı bir 5. dosyam var ve bmi'yi dört propen dosyasıyla birleştirmek istiyorum. Bunları dplyr birleşimleri veya temel birleştirme kullanarak tek tek birleştirebilirim, ancak 4 yerine tek bir deyim ile birleştirmenin bir yolu olup olmadığını merak ediyordum.Küresel ortamda birden çok veri çerçevesini tek bir dosyada bir araya getirme

Denediğim şey bu, ama işe yaramıyor mu? Herhangi bir öneri memnuniyetle karşılanır ve takdir edilir.

flist=ls(pattern="propen") 
sapply(flist,function(x){merge(x,bmi,by="cfact",all.x=T)}) 

cevap

6

Birden fazla ilgili veri çerçeveniz varsa, bunların tümünü küresel ortamda tamamen ayrı tutmak yerine bir listeye almak en iyisidir. Ekstrenizdeki dayanarak

Onlar dört veri çerçeveleri istiyoruz beri Sonra

datalist <- mget(ls(pattern = "propens[1-4]")) 

ile tüm veri çerçeveleri toplayabilir

propens1, propens2, propens3 ve propens4 adlandırılır Sonuç, tek yapmamız gereken her biri için merge()'u çalıştırmak. Artık bir listede veri karelerine sahip olduğumuza göre, lapply() ile bunu kolayca yapabiliriz.

lapply(datalist, merge, y = bmi, by = "cfact", all.x = TRUE) 
İlgili konular