R 如何求和

R 如何求和,r,dataframe,sum,R,Dataframe,Sum,我在数据库中有一个表,如下所示: id place_id minutes spent_time ___ _________ ______ ___________ 1 1 0 2 1 1 5 3 1 1 10 2 1 2 10 3 1 2

我在数据库中有一个表,如下所示:

id   place_id        minutes    spent_time
___   _________     ______   ___________
1       1              0        2
1       1              5        3
1       1              10       2
1       2              10       3
1       2              15       3
1       2              20       9
这里的分钟是0意味着间隔(0-5分钟)。所以在10-15分钟内,它在1号位置停留了2分钟,然后在2号位置休息

这给出了每五分钟花费的时间。所以我想知道在移动到位置2之前在位置id 1花费的总时间。这意味着在移动到位置2之前在位置1花费2+3+2=7分钟

我尝试了rle(df$place\u id),它将

3   3
1   2

但是如何总结这些块所花费的时间呢?

我们可以使用分组操作

library(dplyr)
df1 %>% 
    group_by(id, place_id) %>%
    summarise(spent_time = sum(spent_time))

或者使用
聚合
来自
基本R

aggregate(spent_time ~ id + place_id, df1, FUN = sum)

使用
聚合

> a
  id place_id minutes spent_time
1  1        1       0          2
2  1        1       5          3
3  1        1      10          2
4  1        2      10          3
5  1        2      15          3
6  1        2      20          9
> aggregate(a$spent_time, by=list(Category=a$place_id), FUN=sum)
      place_id spent_time
  1      1       7
  2      2       15
您也可以使用
tapply
,如下所示:

> tapply(a$spent_time, a$place_id, FUN=sum)
   place_id    spent_time
    1              7 
    2              15  

我通过求和
2+3+2#[1]7