基于多个列在数据框中添加新列

时间:2015-03-06 08:17:25

标签: r

我有以下数据框。它只是头部,有17,568行。我想添加一个名为" average_no_of_steps"的新列。其值将等于与该行中的间隔对应的所有步骤的平均值。那我怎么能这样做呢?

     steps         date      interval 
1  37.3826   2012-10-01             0      
2  37.3826   2012-10-01             5      
3  37.3826   2012-10-01            10      
4  37.3826   2012-10-01            15          
5  37.3826   2012-10-01            20      
6  37.3826   2012-10-01             0          

1 个答案:

答案 0 :(得分:0)

让我们制作一个复制你的例子的样本数据

library(dplyr)
df <- data.frame(steps=rnorm(1000, mean=35, sd=45), 
             interval=sample(c(0,5,10,15), 1000, replace=T)) 

现在,我们将根据您要进行聚合的变量进行分组,最后创建新列,该列将考虑先前的组进行聚合,从而为您提供相同维度的数据框。

df <- df %>% group_by(interval) %>%
mutate(mean=mean(steps))