我在 R 中有一个数据框,该数据框之前已使用如下所示的数据进行了排序:
id creatorid responderid
1 1 2
2 1 2
3 1 3
4 1 3
5 1 3
6 2 3
7 2 3
我想添加一个值,调用数据框,显示 ( , ) 组合之前出现repetition
了多少次。例如,这种情况下的输出将是:creatorid
responderid
id creatorid responderid repetition
1 1 2 0
2 1 2 1
3 1 3 0
4 1 3 1
5 1 3 2
6 2 3 0
7 2 3 1
我有一种预感,这是可以用dlply
and轻松完成的事情transform
,但我一直无法解决。这是我用来尝试的简单代码:
dlply(df, .(creatorid, responderid), transform, repetition=function(dfrow) {
seq(0,nrow(dfrow)-1)
})
不幸的是,这会引发以下错误(从我的真实数据中粘贴 - 第一次重复出现 166 次):
Error in data.frame(list(id = c(39684L, 55374L, 65158L, 54217L, 10004L, :
arguments imply differing number of rows: 166, 0
关于以简单有效的方式完成此任务的任何建议?