计算每个组中向量或数据帧上元素出现次数的最简单方法是什么?
我的意思并不是只计算总数(正如其他 stackoverflow 问题所要求的那样),而是为每个连续发生的事件提供不同的数字。
例如对于这个简单的数据框:(但我将使用具有更多列的数据框)
mydata <- data.frame(A=c("A","A","A","B","B","A", "A"))
我找到了这个解决方案:
cbind(mydata,myorder=ave(rep(1,nrow(mydata)),mydata$A, FUN=cumsum))
结果如下:
A myorder
A 1
A 2
A 3
B 1
B 2
A 4
A 5
没有任何一个命令可以做到这一点吗?或者使用专门的包?
我希望它稍后使用 tidyr 的 spread() 函数。
我的问题与是否有聚合 FUN 选项来计算出现次数? https://stackoverflow.com/questions/9809166/is-there-an-aggregate-fun-option-to-count-occurrences因为我不想知道最后出现的总数,而是知道每个元素的累积出现次数。
好的,我的问题有点复杂
mydata <- data.frame(group=c("x","x","x","x","y","y", "y"), letter=c("A","A","A","B","B","A", "A"))
我只知道解决我上面写的第一个例子。
但是,当我还想要第二个分组变量时会发生什么?
类似按组出现的事件(字母)。
group letter "occurencies within group"
x A 1
x A 2
x A 3
x B 1
y B 1
y A 1
y A 2
我找到了方法
ave(rep(1,nrow(mydata)),列表(mydata$group,mydata$letter),FUN=cumsum)
虽然它应该更容易一些。