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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *