在 j 中用 .SD 计算

在 R 中使用 data.table 进行数据处理

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

数据子集 .SD

  • .SD 是表示数据子集的特殊符号(Subset of Data)
  • 包含每个分组对应的数据子集;其本身是一个 data.table
  • 默认为方便起见,分组列被排除
x <- data.table(id = c(1, 1 ,2, 2, 1, 1), 
                val1 = 1:6, val2 = letters[6:1])
id val1 val2
 1    1    f
 1    2    e
 2    3    d
 2    4    c
 1    5    b
 1    6    a
在 R 中使用 data.table 进行数据处理

数据子集 .SD

x[, print(.SD), by = id]
val1 val2
   1    f
   2    e
   5    b
   6    a
val1 val2
   3    d
   4    c
Empty data.table (0 rows) of 1 col: id
在 R 中使用 data.table 进行数据处理

数据子集 .SD

x[, .SD[1], by = id]
id val1 val2
 1    1    f
 2    3    d
在 R 中使用 data.table 进行数据处理

数据子集 .SD

x[, .SD[.N], by = id]
id val1 val2
 1    6    a
 2    4    c
在 R 中使用 data.table 进行数据处理

.SDcols

.SDcols 指定应包含在 .SD 中的列

batrips[, .SD[1], by = start_station]
           start_station   trip_id   duration            start_date  
 San Francisco City Hall    139545        435   2014-01-01 00:14:00  
  Embarcadero at Sansome    139547       1523   2014-01-01 00:17:00
# .SDcols 控制 .SD 所包含的列
batrips[, .SD[1], by = start_station, .SDcols = c("trip_id", "duration")]
          start_station   trip_id   duration
San Francisco City Hall    139545        435
 Embarcadero at Sansome    139547       1523
在 R 中使用 data.table 进行数据处理

.SDcols

batrips[, .SD[1], by = start_station, .SDcols = - c("trip_id", "duration")]
           start_station             start_date           
 San Francisco City Hall    2014-01-01 00:14:00  
  Embarcadero at Sansome    2014-01-01 00:17:00  
在 R 中使用 data.table 进行数据处理

Passons à la pratique !

在 R 中使用 data.table 进行数据处理

Preparing Video For Download...