R에서 rbindlist를 사용하여 여러 테이블에서 데이터 테이블을 만드는 방법
R의 rbindlist() 함수는 많은 data.table 또는 data.frame 개체 목록에서 data.table을 만드는 데 사용할 수 있습니다.
이 함수는 다음 기본 구문을 사용합니다.
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
금:
- l : data.table, data.frame 또는 목록 개체를 포함하는 목록입니다.
- 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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 테이블을 데이터 프레임으로 변환하는 방법
R의 데이터 프레임에 행을 추가하는 방법
R에서 데이터 프레임을 분할하는 방법