首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对记录进行分组和条件计数

对记录进行分组和条件计数
EN

Stack Overflow用户
提问于 2018-05-30 09:25:59
回答 1查看 103关注 0票数 1

我有这个数据集

代码语言:javascript
复制
ID | days 

1  |  2
1  | 31
1  | 22
2  | 24
2  | 19

我想创建一个具有相同ID的计数的新列,但仅计数天数大于20,

代码语言:javascript
复制
ID | days | Count

1  |  2  | 2
1  | 31  | 2
1  | 22  | 2
2  | 24  | 1
2  | 19  | 1

我已经尝试过了:

代码语言:javascript
复制
dataset1 = dataset1[ days > 20,count_IDs :=.N, by = 'ID' ]

但是这只会将一个值赋给那些days > 20的行,我想在具有相同ID的所有行中添加该值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 09:48:29

有多种方法可以做到这一点:

使用基数R ave,我们为每个days计算大于20的ID的数量。

代码语言:javascript
复制
df$Count <- ave(df$days, df$ID, FUN = function(x) sum(x>20))

df
#  ID days Count
#1  1    2     2
#2  1   31     2
#3  1   22     2
#4  2   24     1
#5  2   19     1

使用dplyr

代码语言:javascript
复制
library(dplyr)
df %>%
  group_by(ID) %>%
  mutate(Count = sum(days > 20))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50595126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档