【发布时间】:2018-08-08 22:05:09
【问题描述】:
我有一个data.frame 有两组 ID,这两个 ID 都可能是多余的。
这是一个例子:
df <- data.frame(id1 = c("id.1","id.1","id.1","id.1","id.1","id.2","id.2","id.3"),
id2 = c("id.1.a","id.1.b","id.1.a","id.1.c","id.1.b","id.2.a","id.2.b","id.3.a"))
我想要做的是添加另一个 ID 列,其中df$id1 将有一个数字后缀,值增加,遵循df$id2 的顺序。
因此对于上面的示例,生成的 data.frame 将是:
res.df <- data.frame(id1 = c("id.1","id.1","id.1","id.1","id.1","id.2","id.2","id.3"),
id2 = c("id.1.a","id.1.b","id.1.a","id.1.c","id.1.b","id.2.a","id.2.b","id.3.a"),
id3 = c("id.1.01","id.1.03","id.1.02","id.1.05","id.1.04","id.2.01","id.2.02","id.3"))
所以由于id.1 映射到id.1.a 两次,id.1.b 两次,id.1.c 一次,它变成:id.1.01, id.1.03, id.1.02, id.1.05, id.1.04
知道如何使用dplyr 或tidyr 解决这个问题吗?
【问题讨论】: