R中的聚合和存储桶

用户名

我有一个数据集,需要对它进行存储,然后根据作为输入给出的一组断点进行汇总。可以说数据集是:

> x.df
     x1      x2
1  84.05370  2
2  39.61822  5
3  97.58997  6
4  78.28167  6
5  14.52273  9
6  17.18028  3
7  61.31518  9
8  97.63569  7
9  40.52498  4
10 13.21434  3

和作为输入的断点是

breaks = c(3,6)

我需要找到x1的总和,其中x2位于这些存储桶中(<= 3、3-6,> 6)。我查看了aggregate()和cut()函数,但无法将它们放在一起以一种优雅的方式实现结果。

提前致谢。

兹比涅克

您需要为休息时间添加类别。如您所见,低于/大于中断的最小值和最大值的值设置为NA因此,我附加了最小值和最大值(-InfInf)。

cut(1:9, c(3,6))
[1] <NA>  <NA>  <NA>  (3,6] (3,6] (3,6] <NA>  <NA>  <NA> 
Levels: (3,6]

另外-aggregate函数接受list分组,因此您必须将休息时间作为列表提供。

# add categories to breaks
breaks <- c(-Inf,3,6,Inf)

# aggregate
aggregate(x.df$x1, by=list(cut(x.df$x2, breaks)), FUN=sum)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章