R:按ID分组的频率 [英] R: frequency with group by ID

查看:156
本文介绍了R:按ID分组的频率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的数据框:

I have a data frame like this:

ID Cont
1   a
1   a
1   b
2   a
2   c
2   d

我需要通过ID报告续"的频率.输出应该是

I need to report the frequence of "Cont" by ID. The output should be

ID Cont Freq
1   a    2
1   b    1
2   a    1
2   c    1
2   d    1

推荐答案

使用dplyr,您可以同时使用n()group_by IDContsummarise来获取Freq:

Using dplyr, you can group_by both ID and Cont and summarise using n() to get Freq:

library(dplyr)
res <- df %>% group_by(ID,Cont) %>% summarise(Freq=n())
##Source: local data frame [5 x 3]
##Groups: ID [?]
##
##     ID   Cont  Freq
##  <int> <fctr> <int>
##1     1      a     2
##2     1      b     1
##3     2      a     1
##4     2      c     1
##5     2      d     1

数据:

df <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L), Cont = structure(c(1L, 
1L, 2L, 1L, 3L, 4L), .Label = c("a", "b", "c", "d"), class = "factor")), .Names = c("ID", 
"Cont"), class = "data.frame", row.names = c(NA, -6L))
##  ID Cont
##1  1    a
##2  1    a
##3  1    b
##4  2    a
##5  2    c
##6  2    d

这篇关于R:按ID分组的频率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆