首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的聚集和桶形

R中的聚集和桶形
EN

Stack Overflow用户
提问于 2014-02-27 06:40:52
回答 1查看 101关注 0票数 1

我有一个数据集,它需要被桶化,然后根据作为输入的一组断点进行聚合。假设数据集是:

代码语言:javascript
运行
复制
> 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

作为输入的断点是

代码语言:javascript
运行
复制
breaks = c(3,6)

我需要找到x1之和,x2位于这些桶中(<=3,3-6,>6)。我查看了聚合()函数和cut()函数,但未能将它们组合在一起,从而以一种优雅的方式实现结果。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 06:43:24

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

代码语言:javascript
运行
复制
cut(1:9, c(3,6))
[1] <NA>  <NA>  <NA>  (3,6] (3,6] (3,6] <NA>  <NA>  <NA> 
Levels: (3,6]

同时- aggregate函数接受list来组成组,所以您必须以列表的形式提供中断。

代码语言:javascript
运行
复制
# add categories to breaks
breaks <- c(-Inf,3,6,Inf)

# aggregate
aggregate(x.df$x1, by=list(cut(x.df$x2, breaks)), FUN=sum)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22060906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档