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

时间:2014-09-19 09:21:14

标签: r dataframe unique 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 

我希望为每个匹配的行分配一个唯一的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 

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

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

1 个答案:

答案 0 :(得分:6)

基础R的解决方案:

df2 <- unique(df)
df2$ID <- 1:nrow(df2)
merge(df, df2)

或使用data.table

dt[, ID := .GRP, by = names(dt)]