수색…


소개

특수 기호 .SD 가능하다 jDT[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 , gearcarb 와 같은 다른 카테고리 칼럼이 있습니다. 이 컬럼들의 mean 을 취하는 것은 실제로 의미가 없습니다. 그렇다면이 열을 제외 시키십시오. 이것은 .SDcols 가 그림에 나오는 곳입니다.

.SDcols

.SDcols 의 열을 지정 data.table 에 포함 .SD .

기어의 수에 의한 데이터 세트의 모든 열 (연속 열)의 평균 gear실린더 번호 cyl 하여 배치 gearcyl :

# 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