H,
我有一个像这样的数据框:

d <- data.frame(v1=seq(0,9.9,0.1),
            v2=rnorm(100),
            v3=rnorm(100))

> head(d)
   v1          v2         v3
1 0.0 -0.01431916 -0.5005415
2 0.1 -1.01575590  1.5307473
3 0.2  1.00081065 -0.1730830
4 0.3 -1.20697918  0.5105118
5 0.4 -2.16698578 -1.0120544
6 0.5  0.33886508  0.4797016

我现在想要一个新的数据框,该数据框汇总所有区间0-0.99、1-1.99、2-2.99、3-3.99等中的值。

像这样
start end mean.v2 mean.v3
    0   1     0.2     0.1
    1   2     0.5     0.4

等等

谢谢

更新,我应该补充一点,在我的真实数据集中,每个时间间隔的观察值具有不同的长度,并且它们并不总是从零开始或以10结束

最佳答案

这是@akrun建议的使用cut()的一种方法:

d %>% mutate( ints = cut(v1 ,breaks = 11)) %>%
   group_by(ints) %>%
   summarise( mean.v2 = mean(v2) , mean.v3 = mean(v3) )

关于r - 使用dplyr将组汇总为间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36158017/

10-13 03:06