SORU
28 Mart 2013, PERŞEMBE


Neden rbindlist "daha iyi&; rbind daha " mı?

data.table Dokümantasyon geçiyor ve ayrıca geçen bazı konuşmaları fark burada rbindlist rbind daha iyi olacak. bu YÜZDEN buradayım.

rbind rbindlist daha iyi olduğunu neden bilmek istiyorum ve senaryolar rbindlist gerçekten rbind geride bırakıyor?

Bellek kullanımı açısından herhangi bir avantajı var mı?

CEVAP
28 Mart 2013, PERŞEMBE


rbindlist rbind.data.frame kullanırken yavaş olduğu için bilinen do.call(rbind, list(...)), optimize edilmiş bir versiyonu


Gerçekten excel yapar

Bazı rbindlist parlar nerede o soruları göster

how to merge a list of data.frames by row

Trouble converting long list of data.frames (~1 million) to single data.frame using do.call and ldply

Bu ne kadar zor olabileceğini gösteren kriterler var.


rbind.veri.çerçeve yavaş, bir nedeni vardır

rbind.data.frame kontrol bir sürü yapıyor, ve adı ile eşleşir. (yani rbind.veri.sütunlar farklı sıralarda olabilir aslında hesap verecek çerçeve ve isimle maç), rbindlist kontrol Bu tür şeyler yapmaz, ve konumu ile katılacak

örn

do.call(rbind, list(data.frame(a = 1:2, b = 2:3), data.frame(b = 1:2, a = 2:3)))
##    a b
## 1  1 2
## 2  2 3
## 3  2 1
## 4  3 2

rbindlist(list(data.frame(a = 1:5, b = 2:6), data.frame(b = 1:5, a = 2:6)))
##     a b
##  1: 1 2
##  2: 2 3
##  3: 1 2
##  4: 2 3

Rbindlist diğer bazı sınırlamalar

için kullanılırmücadele factors beri sabit bir hata nedeniyle ile başa çıkmak için:

rbindlist two data.tables where one has factor and other has character type for a column (Bug #2650)

Yinelenen sütun adları ile ilgili sorunlar var

bakın Warning message: in rbindlist(allargs) : NAs introduced by coercion: possible bug in data.table? (Bug #2384)


rbind.veri.çerçeve rownames sinir bozucu olabilir

rbindlist * data.frames *17 ve data.tables, işleyebilir ve bir veri dönecektir.rownames olmadan masa

rownames do.call(rbind, list(...))kullanarak bir karışıklık içinde alabilirsiniz bakın

How to avoid renaming of rows when using rbind inside do.call?


Hafıza verimliliği

rbindlist bellek verimli C, uygulanan bellek açısından, setattr başvuru öznitelikleri ayarlamak için kullanır

rbind.data.frame uygulanır R, bir sürü atama ve kullanır attr<- (class<- rownames<- öğrenci Birliği (dahili) oluşturmak kopya oluşturulan veri.çerçeve.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Benedict

    Joshua Bened

    26 EKİM 2013
  • RyanXLT

    RyanXLT

    22 Ocak 2011
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008