我很抱歉,不知道如何在问题框中插入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个不同的值。任何帮助是极大的赞赏。
答案 0 :(得分:6)
基础R的解决方案:
df2 <- unique(df)
df2$ID <- 1:nrow(df2)
merge(df, df2)
或使用data.table
:
dt[, ID := .GRP, by = names(dt)]