R按组计数元素的出现次数

kan

在每个组中计算向量或data.frame上元素出现的最简单方法是什么?
我的意思不是仅仅计算总数(就像其他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选项可以计算发生次数不同?因为我不想知道最后出现的总数,而是想知道直到每个元素的累积出现的次数。

好吧,我的问题有点复杂

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)),list(mydata $ group,mydata $ letter),FUN = cumsum)
虽然应该更容易一些。

阿基尔·奈尔(Akhil Nair)

使用 data.table

library(data.table)
setDT(mydata)
mydata[, myorder := 1:.N, by = .(group, letter)]

by参数使表在称为的列组内处理A.N是该组中的行数(如果by参数为空,则为表中的行数),因此对于每个子表,每行的索引从1到该子表中的行数。

mydata
   group letter myorder
1:     x      A       1
2:     x      A       2
3:     x      A       3
4:     x      B       1
5:     y      B       1
6:     y      A       1
7:     y      A       2

dplyr几乎相同解决方案

mydata %>% 
  group_by(group, letter) %>% 
  mutate(myorder = 1:n())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL按组将出现次数计数为列值

来自分类Dev

如何按R中的像素计数线段出现次数?

来自分类Dev

按出现次数进行计数和排序

来自分类Dev

按名称计数出现次数

来自分类Dev

R-计数值之前的出现次数

来自分类Dev

按Javascript数组中的出现次数(计数)排序

来自分类Dev

按因子和时间间隔计数出现次数

来自分类Dev

按数组中的出现次数进行计数和排序

来自分类Dev

MYSQL的出现次数按两列中的值进行计数

来自分类Dev

Scala计数Map中某个元素的出现次数

来自分类Dev

计算 R 中元素组合的出现次数

来自分类Dev

Mongodb计算组中数组内部元素的出现次数

来自分类Dev

按出现次数排序

来自分类Dev

按组的每个出现的值构建计数列

来自分类Dev

R计数某级别在n行中出现的次数

来自分类Dev

R中的出现次数和直方图图表计数

来自分类Dev

R计数某级别在n行中出现的次数

来自分类Dev

使用runif函数使用R对出现次数进行计数

来自分类Dev

如何计算带有R的子组内的出现次数?

来自分类Dev

按行计数发生次数

来自分类Dev

计数DataFrame中的出现次数

来自分类Dev

QRegularExpression计数出现次数

来自分类Dev

计数对象的出现次数在列表

来自分类Dev

计数列中的出现次数

来自分类Dev

列中出现次数的计数

来自分类Dev

自动计数出现次数

来自分类Dev

按组计数并崩溃

来自分类Dev

R中按GroupID分组的值出现次数

来自分类Dev

计算值出现的次数,按R中的id分组