dplyr基于两个向量进行变异(根据2列的分组计算第3列)
我有数据,包括日期,用户id,步骤,心率 我正在尝试使用dplyr基于两个向量进行变异(根据2列的分组计算第3列),r,R,我有数据,包括日期,用户id,步骤,心率 我正在尝试使用dplyrmutate为我提供一个列,该列将显示每个用户id每天的平均心率。每个用户每天都有多个心率记录。(注意:我在附加一列b/c我想保留其他列的信息,如“步骤”) 生成数据样本的代码 df7 <- data.frame( date=c('2016-11-01','2016-11-01','2016-11-01','2016-11-01','2016-11-02','2016-11-02','2016-11-02','2016-1
dplyr
mutate
为我提供一个列,该列将显示每个用户id每天的平均心率。每个用户每天都有多个心率记录。(注意:我在附加一列b/c我想保留其他列的信息,如“步骤”)
生成数据样本的代码
df7 <- data.frame( date=c('2016-11-01','2016-11-01','2016-11-01','2016-11-01','2016-11-02','2016-11-02','2016-11-02','2016-11-02'),
users_user_id=c(6,6,7,7,6,6,7,7),
steps=c(500,2000,500,2000,600,3000,600,3000),
avg_heart_rate=c(70,80,70,80,80,90,80,90))
df7$date <- as.Date(df7$date)
首先
总结
然后加入
结果
new.df <- df7 %>%
group_by(., date, users_user_id) %>%
summarise(., day_avg_hr = mean(avg_heart_rate)) %>%
ungroup() %>%
left_join(df7, .)
new.df%
分组依据(、日期、用户\u用户id)%>%
总结(,天平均心率=平均值(平均心率))%>%
解组()%>%
左联合(df7,.)
你试过df7%>%group\u by(date,users\u user\u id)%%>%mutate(day\u avg=mean(avg\u heart\u rate))
吗?谢谢,这很有效,我用的是df7$avg\u heart\u rate
而不是avg\u heart\u rate
。我愚蠢的错误,summary()/join()
没有必要。一个简单的mutate()
在这里可以正常工作(如注释和重复答案所示)
new.df <- df7 %>%
group_by(., date, users_user_id) %>%
summarise(., day_avg_hr = mean(avg_heart_rate)) %>%
ungroup() %>%
left_join(df7, .)