Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 组id内的data.table_R_Data.table - Fatal编程技术网

R 组id内的data.table

R 组id内的data.table,r,data.table,R,Data.table,我有一个带有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

我有一个带有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
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
# ...