data.table
.SD 및 .SDcols를 사용하여 데이터의 하위 집합 만들기
수색…
소개
특수 기호
.SD
가능하다 j
의 DT[i,j,by]
각 D의 ATA의 S ubset를 캡처 by
, 필터 군 생존 i
. .SDcols
은 도우미입니다. 공식 문서에는 ?`special-symbols`
을 입력하십시오.
비고
주의 사항 : DT[where, select|update|do, by]
구문은 data.table의 열을 사용하여 작업하는 데 사용됩니다.
- "where"부분이
i
인수입니다. - "select | update | do"부분은
j
인수입니다.
이 두 인수는 일반적으로 이름 대신 위치에 의해 전달됩니다.
.SD 및 .SDcols 사용
.SD
.SD
의 서브 세트를 의미 data.table
에 사용되는 모든 열을 제외한 각 그룹 용 by
.
.SD
함께 lapply
A의기로 여러 열 어떤 함수를 적용하는 데 사용될 수 data.table
동일한 기본 제공 데이터 세트 인 mtcars
를 계속 사용합니다.
mtcars = data.table(mtcars) # Let's not include rownames to keep things simpler
실린더 수 , cyl
의한 데이터 집합의 모든 열의 평균 :
mtcars[ , lapply(.SD, mean), by = cyl]
# cyl mpg disp hp drat wt qsec vs am gear carb
#1: 6 19.74286 183.3143 122.28571 3.585714 3.117143 17.97714 0.5714286 0.4285714 3.857143 3.428571
#2: 4 26.66364 105.1364 82.63636 4.070909 2.285727 19.13727 0.9090909 0.7272727 4.090909 1.545455
#3: 8 15.10000 353.1000 209.21429 3.229286 3.999214 16.77214 0.0000000 0.1428571 3.285714 3.500000
cyl
외에도 데이터 세트에는 vs
, am
, gear
및 carb
와 같은 다른 카테고리 칼럼이 있습니다. 이 컬럼들의 mean
을 취하는 것은 실제로 의미가 없습니다. 그렇다면이 열을 제외 시키십시오. 이것은 .SDcols
가 그림에 나오는 곳입니다.
.SDcols
.SDcols
의 열을 지정 data.table
에 포함 .SD
.
기어의 수에 의한 데이터 세트의 모든 열 (연속 열)의 평균 gear
및 실린더 번호 cyl
하여 배치 gear
와 cyl
:
# All the continuous variables in the dataset
cols_chosen <- c("mpg", "disp", "hp", "drat", "wt", "qsec")
mtcars[order(gear, cyl), lapply(.SD, mean), by = .(gear, cyl), .SDcols = cols_chosen]
# gear cyl mpg disp hp drat wt qsec
#1: 3 4 21.500 120.1000 97.0000 3.700000 2.465000 20.0100
#2: 3 6 19.750 241.5000 107.5000 2.920000 3.337500 19.8300
#3: 3 8 15.050 357.6167 194.1667 3.120833 4.104083 17.1425
#4: 4 4 26.925 102.6250 76.0000 4.110000 2.378125 19.6125
#5: 4 6 19.750 163.8000 116.5000 3.910000 3.093750 17.6700
#6: 5 4 28.200 107.7000 102.0000 4.100000 1.826500 16.8000
#7: 5 6 19.700 145.0000 175.0000 3.620000 2.770000 15.5000
#8: 5 8 15.400 326.0000 299.5000 3.880000 3.370000 14.5500
우리는 그룹별로 mean
을 계산하고 싶지 않을 수도 있습니다. 데이터 세트의 모든 자동차에 대한 평균을 계산하기 위해 by
변수를 지정하지 않았습니다.
mtcars[ , lapply(.SD, mean), .SDcols = cols_chosen]
# mpg disp hp drat wt qsec
#1: 20.09062 230.7219 146.6875 3.596563 3.21725 17.84875
주 : 미리 cols_chosen
을 정의 할 필요는 없습니다. .SDcols
는 직접 열 이름을 사용할 수 있습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow