R で rbindlist を使用して複数のデータテーブルを作成する方法
R のrbindlist()関数を使用すると、多くの data.table または data.frame オブジェクトのリストから data.table を作成できます。
この関数は次の基本構文を使用します。
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
金:
- l : data.table、data.frame、または list オブジェクトを含むリスト。
- use.names : TRUE は列名によってバインドします。 FALSE は位置によってバインドします。
- fill : TRUE は欠損値を NA で埋めます。
- idcol : これらの行がどのリスト項目に由来するかを示す列を作成します。
次の例は、この関数を実際に使用する方法を示しています。
例: rbindlist を使用してデータテーブルを作成する
R に次の data.table オブジェクトと data.frame オブジェクトのリストがあるとします。
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
次のrbindlist()関数を使用して、data.table オブジェクトと data.frame オブジェクトのリストを単一の data.table にバインドできます。
#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
結果は、提供したオブジェクトのリストの行で構成される 9 行を含む data.table オブジェクトです。
class()関数を使用して、結果が実際に data.table オブジェクトであることを確認することもできます。
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
結果は実際に data.table オブジェクトであることがわかります。
rbindlistを使用する利点
rbindlistを使用する代わりに、ベース R の rbind 関数でdo.callを使用することもできます。
#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
このコードは同じ結果を生成しますが、特に非常に大きな data.table または data.frame オブジェクトの場合、 rbindlist の方が大幅に高速であることがわかります。
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。