Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dplyr基于两个向量进行变异(根据2列的分组计算第3列)_R - Fatal编程技术网

dplyr基于两个向量进行变异(根据2列的分组计算第3列)

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

我有数据,包括日期,用户id,步骤,心率

我正在尝试使用
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, .)