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