【问题标题】:data.table within group id [duplicate]组 ID 内的 data.table [重复]
【发布时间】:2015-09-07 17:51:54
【问题描述】:

我有一个带有 n 个分组变量的 data.table(在本例中为 2)。我想为每个组添加一个标识符列,如下面的所需输出所示。我尝试了:=:.N`,我明白了为什么它不起作用但不知道如何实现:

library(data.table)
dat <- data.table::data.table(
    w = 1:16,
    x = LETTERS[1:2],
    y = 1:4
)[, w := NULL][order(x, y)]


##     x y
##  1: A 1
##  2: A 1
##  3: A 1
##  4: A 1
##  5: A 3
##  6: A 3
##  7: A 3
##  8: A 3
##  9: B 2
## 10: B 2
## 11: B 2
## 12: B 2
## 13: B 4
## 14: B 4
## 15: B 4
## 16: B 4


dat[, z := 1:.N, by = list(x, y)]
dat

期望的输出

##     x y z
##  1: A 1 1
##  2: A 1 1
##  3: A 1 1
##  4: A 1 1
##  5: A 3 2
##  6: A 3 2
##  7: A 3 2
##  8: A 3 2
##  9: B 2 3
## 10: B 2 3
## 11: B 2 3
## 12: B 2 3
## 13: B 4 4
## 14: B 4 4
## 15: B 4 4
## 16: B 4 4

【问题讨论】:

    标签: r data.table


    【解决方案1】:
    dat[, z:=.GRP,by=list(x,y)]
    dat
    #     x y z
    #  1: A 1 1
    #  2: A 1 1
    #  3: A 1 1
    #  4: A 1 1
    #  5: A 3 2
    #  6: A 3 2
    #  7: A 3 2
    #  8: A 3 2
    #  9: B 2 3
    # 10: B 2 3
    # ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2020-01-28
      • 2018-11-16
      • 2014-06-05
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多