Birden çok veri tablosu oluşturmak için r'de rbindlist nasıl kullanılır?
R’deki rbindlist() işlevi, birçok data.table veya data.frame nesnesinin bulunduğu listeden bir data.table oluşturmak için kullanılabilir.
Bu işlev aşağıdaki temel sözdizimini kullanır:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
Altın:
- l : data.table, data.frame veya list nesnelerini içeren liste.
- use.names : TRUE, sütun adlarına göre bağlanır. FALSE konuma göre bağlanır.
- fill : TRUE, eksik değerleri NA ile doldurur.
- idcol : Bu satırların hangi liste öğesinden geldiğini belirten bir sütun oluşturur.
Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.
Örnek: Bir veri tablosu oluşturmak için rbindlist’i kullanın
R’de aşağıdaki data.table ve data.frame nesnelerinin listesine sahip olduğumuzu varsayalım:
library (data.table) #create data frames and data tables data1 <- data. table (team=c('A', 'B', 'C'), dots=c(22, 27, 38)) data2 <- data. table (team=c('D', 'E', 'F'), dots=c(22, 14, 20)) data3 <- data. frame (team=c('G', 'H', 'I'), dots=c(11, 15, 18)) #view data frames and data tables print (data1) print (data2) print (data3) team points 1: At 22 2:B27 3: C 38 team points 1:D22 2:E14 3:F20 team points 1 G 11 2:15 a.m. 3 I 18
data.table ve data.frame nesnelerinin listesini tek bir data.table’a bağlamak için aşağıdaki rbindlist() işlevini kullanabiliriz:
#define list of objects to bind together data_list <- list(data1, data2, data3) #bind together list of objects big_data <- rbindlist(data_list) #view result big_data team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
Sonuç, sağladığımız nesneler listesindeki satırlardan oluşan dokuz satıra sahip bir data.table nesnesidir.
Sonucun gerçekten bir data.table nesnesi olduğunu doğrulamak için class() işlevini de kullanabiliriz:
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
Sonucun aslında bir data.table nesnesi olduğunu görüyoruz.
Rbindlist kullanmanın avantajı
Rbindlist kullanmanın alternatifi, R tabanındaki rbind işleviyle do.call kullanmak olacaktır:
#use rbind to bind together list of objects do. call (" rbind ", data_list) team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
Bu kod aynı sonucu üretir ancak rbindlist’in özellikle çok büyük data.table veya data.frame nesneleri için önemli ölçüde daha hızlı olduğu ortaya çıkar.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de bir tabloyu veri çerçevesine dönüştürme
R’de bir veri çerçevesine satırlar nasıl eklenir
R’de bir veri çerçevesi nasıl bölünür