前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >39. R 数据整理(十: R 的四种累积运算与by)

39. R 数据整理(十: R 的四种累积运算与by)

作者头像
北野茶缸子
发布2021-12-17 09:24:22
5830
发布2021-12-17 09:24:22
举报
文章被收录于专栏:北野茶缸子的专栏
  • cumsum 可以实现整体的累加
代码语言:javascript
复制
> cumsum(1:10)
 [1]  1  3  6 10 15 21 28 36 45 55

向量中第一个元素为起始,后面是其需要加的数。

  • cumprod(x) 累乘
代码语言:javascript
复制
> cumprod(1:5)
[1]   1   2   6  24 120
  • cummax 保留出现的最大的那个数,并不断输出
代码语言:javascript
复制
> cummax(c(3:1, 2:0, 4:2))
[1] 3 3 3 3 3 3 4 4 4
  • cummin 同理最小的那个
代码语言:javascript
复制
> cummin(c(3:1, 2:0, 4:2))
[1] 3 2 1 1 1 0 0 0 0

总结一下:

代码语言:javascript
复制
Returns a vector whose elements are the cumulative sums, products, minima or maxima of the elements of the argument.

Usage
cumsum(x)
cumprod(x)
cummax(x)
cummin(x)

by

使用by()分组计算描述性统计量,它可以一次返回若干个统计量。格式为:

代码语言:javascript
复制
by(data, INDICES, FUN)

其中data是一个数据框或矩阵;INDICES是一个因子或因子组成的列表,定义了分组;FUN是任意函数。

通过INDICES 定义的因子,对data 内容进行分组,即将整个data大数据框,划分为了若干个小的数据框,而函数则定义了对这些分组数据处理的方式。

例子

代码语言:javascript
复制
tmp = by(exp,
         ids$symbol,
         function(x) rownames(x)[which.max(rowMeans(x))])

这里面,exp 为原有的数据框,而ids$symbol 则是区分exp 信息的向量,其将exp 按照symbol 中的信息划分为若干个矩阵,而function 则定义了在同一组(同一symbol)中的列名筛选其中平均值最大的那一列( which.max(rowMeans(x)) )。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • by
  • 例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档