如何為列中的每組相同值分配唯一的ID號我有一個包含多個列的數(shù)據(jù)框。我想創(chuàng)建一個名為“id”的新列,它為“sample”列中的每組相同值提供唯一的ID號。示例數(shù)據(jù):# dput(df)df <- structure(list(index = 1:30, val = c(14L, 22L, 1L, 25L, 3L, 34L, 35L, 36L, 24L, 35L, 33L, 31L, 30L, 30L, 29L, 28L, 26L, 12L, 41L, 36L, 32L, 37L, 56L, 34L, 23L, 24L, 28L, 22L, 10L, 19L), sample = c(5L, 6L, 6L, 7L, 7L, 7L, 8L, 9L, 10L, 11L, 11L, 12L, 13L, 14L, 14L, 15L, 15L, 15L, 16L, 17L, 18L, 18L, 19L, 19L, 19L, 20L, 21L, 22L, 23L, 23L)), .Names = c("index", "val", "sample"), class = "data.frame", row.names = c(NA, -30L))head(df) index val sample 1 1 14 5 2 2 22 6 3 3 1 6 4 4 25 7 5 5 3 7 6 6 34 7 我想最終得到什么: index val sample id1 1 14 5 12 2 22 6 23 3 1 6 24 4 25 7 35 5 3 7 36 6 34 7 3
2 回答

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊
怎么樣
df2 <- transform(df,id=as.numeric(factor(sample)))
?
我認(rèn)為這(從創(chuàng)建一個唯一的身份證)應(yīng)該稍微提高效率,盡管可能有點難以記?。?/p>
df3 <- transform(df, id=match(sample, unique(sample)))all.equal(df2,df3) ## TRUE
- 2 回答
- 0 關(guān)注
- 512 瀏覽
添加回答
舉報
0/150
提交
取消