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
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
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.
Neden baskı "B" baskı " ...
Bu "yeterli" rasgele algorit...
&; "(;;)&; Daha hızlı " quot;while...
Neden &; yoksa " someobj:& = = Hiçbiri...
Neden &; while (i < n) " {} " ...