为具有多列的唯一行指定唯一ID名称

Ina*_*est 1 r unique dataframe data.table

我道歉,不知道如何在问题框中插入data.table.

我有一个包含大量行的数据集,如下所示:

phylum class family order genus species
A      B     C      D     E     NA
A      B     C      D     E     NA
A      B     C      D     NA    NA
A      B     C      D     E     F
A      B     C      D     NA    NA
A      B     C      D     E     F 
Run Code Online (Sandbox Code Playgroud)

我希望为每个匹配的行分配一个唯一的ID,例如:

 ID phylum class family order genus species
 1  A      B     C      D     E     NA
 1  A      B     C      D     E     NA
 2  A      B     C      D     NA    NA
 3  A      B     C      D     E     F
 2  A      B     C      D     NA    NA
 3  A      B     C      D     E     F 
Run Code Online (Sandbox Code Playgroud)

我尝试过以各种方式使用GRP,但它不起作用.例如:DT2 = DT [,i:=.GRP,by = key(DT)]

我查看了其他示例,但所有内容都是根据单个或仅2列值分配ID,我想使用6个不同的值.任何帮助是极大的赞赏.

nic*_*ola 6

基础R的解决方案:

df2 <- unique(df)
df2$ID <- 1:nrow(df2)
merge(df, df2)
Run Code Online (Sandbox Code Playgroud)

或使用data.table:

dt[, ID := .GRP, by = names(dt)]
Run Code Online (Sandbox Code Playgroud)