Jak używać rbindlist w r do tworzenia tabeli danych z wielu
Funkcja rbindlist() w R może zostać użyta do utworzenia data.table z listy wielu obiektów data.table lub data.frame.
Ta funkcja wykorzystuje następującą podstawową składnię:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
Złoto:
- l : Lista zawierająca obiekty data.table, data.frame lub list.
- use.names : TRUE wiąże nazwy kolumn. FAŁSZ wiąże według pozycji.
- fill : TRUE uzupełnia brakujące wartości NA.
- idcol : Tworzy kolumnę wskazującą, z którego elementu listy pochodzą te wiersze.
Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.
Przykład: użyj rbindlist, aby utworzyć tabelę danych
Załóżmy, że mamy następującą listę obiektów data.table i data.frame w R:
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
Możemy użyć następującej funkcji rbindlist() , aby powiązać listę obiektów data.table i data.frame w jedną tabelę danych:
#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
Rezultatem jest obiekt data.table z dziewięcioma wierszami składającymi się z wierszy z podanej przez nas listy obiektów.
Możemy również użyć funkcji class() , aby sprawdzić, czy wynik rzeczywiście jest obiektem data.table:
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
Widzimy, że wynikiem jest rzeczywiście obiekt data.table.
Zaleta korzystania z rbindlist
Alternatywą dla użycia rbindlist byłoby użycie do.call z funkcją rbind w bazie 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
Ten kod daje ten sam wynik, ale okazuje się, że rbindlist jest znacznie szybszy, szczególnie w przypadku bardzo dużych obiektów data.table lub data.frame.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:
Jak przekonwertować tabelę na ramkę danych w R
Jak dodać wiersze do ramki danych w R
Jak podzielić ramkę danych w R