我在堆栈溢出中的第一个问题开始了。
我有以下代码:
a <- rep(letters[1:4], each = 4); time <- c(0,0,1,1,0,1,2,2,1,1,2,2,0,0,1,2);
cost <- rep(c(0.4,0.2,0.1,0.5,0.5,0.22,0.15,0.18),each =2);
df <- data.frame(a = a, time = time, cost = cost);
上面的代码只是我拥有的大量数据的简短说明。
所描述的数据帧是这样的:
您是否知道如何将具有重复时间值的行合并为一个,并在每个时间点为a列的每个字母汇总成本(即使它们在某些情况下很常见,它们也代表不同类型的成本)?
提前致谢!
这项工作:
> library(dplyr)
> df %>% group_by(a, time) %>% summarise(cost = sum(cost))
`summarise()` regrouping output by 'a' (override with `.groups` argument)
# A tibble: 10 x 3
# Groups: a [4]
a time cost
<chr> <dbl> <dbl>
1 a 0 0.8
2 a 1 0.4
3 b 0 0.1
4 b 1 0.1
5 b 2 1
6 c 1 1
7 c 2 0.44
8 d 0 0.3
9 d 1 0.18
10 d 2 0.18
>
使用基数R:
> aggregate(cost~a+time, df, sum)
a time cost
1 a 0 0.80
2 b 0 0.10
3 d 0 0.30
4 a 1 0.40
5 b 1 0.10
6 c 1 1.00
7 d 1 0.18
8 b 2 1.00
9 c 2 0.44
10 d 2 0.18
>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句