加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

与条件匹配的聚合(count)行,按唯一值分组

发布时间:2020-12-14 04:30:03 所属栏目:百科 来源:网络整理
导读:好像这样一个简单的问题,但是我一直在拉我的头发试图让这个工作: 鉴于此数据框架标识了由contactGrp分组的联系人的交互idhad, head(data) id sesTs contact contactGrp relpos maxpos1 6849 2012-06-25 15:58:34 peter west 0.000000 32 6849 2012-06-25
好像这样一个简单的问题,但是我一直在拉我的头发试图让这个工作:

鉴于此数据框架标识了由contactGrp分组的联系人的交互idhad,

head(data)
   id               sesTs  contact    contactGrp   relpos   maxpos
1 6849 2012-06-25 15:58:34   peter        west    0.000000      3
2 6849 2012-06-25 18:24:49   sarah        south   0.500000      3
3 6849 2012-06-27 00:13:30   sarah        south   1.000000      3
4 1235 2012-06-29 17:49:35   peter        west    0.000000      2
5 1235 2012-06-29 23:56:35   peter        west    1.000000      2
6 5893 2012-06-30 22:21:33   carl         east    0.000000      1

在relpos = 1和maxpos> 1之间有多少个联系人(数据$ contactGrp)

预期结果将是:

1 west   1
2 south  1
3 east   0

我尝试过的一小部分线条

> aggregate(data,by = list(‘contactGrp’),FUN = count)产生错误,不进行过滤
>使用data.table似乎需要一个键,这在这个数据中不是唯一的…
> ddply(data,“contactGrp”,总结,count = ???)不知道用哪个函数来填充count列
> ddply(数据,数据,maxpos> 1& relpos == 0),c(‘contactGrp’),函数(df)count(df $ relpos))工作,但给我一个额外的列x,它感觉像我’已经复杂了…

SQL将很容易:从数据中选择contactGrp,count(*)作为cnt …根据contactGrp分组,但尝试学习R

我认为这是你正在寻找的ddply版本:
ddply(sessions,.(contactGrp),summarise,count = length(contact[relpos == 0 & maxpos > 1]))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读