c语言分组求和函数,R语言 实现data.frame 分组计数、求和等

df为1个data.frame对象,有stratum和psu两列,这里统计stratum列计数

方法1:

cnt = table(df$stratum)

方法2:

cnt = tapply(df$psu, INDEX=df$stratum, FUN=length)

在方法2的基础上,只要改变FUN函数就可以实现分组求和、求均值等功能,如下

分组求均值:

tapply(df$psu, INDEX=df$stratum, FUN=mean)

#(等价于python中的df.groupby('stratum').psu.mean)

补充:R语言 | 自定义函数对数据集(data.frame)的列进行条件判断计算

1.使用iris数据集

> iris_10

## 自定义函数:如果x >= 5.0, z = y *10

> get_With_function

+ if(x >= 5.0){

+ z

+ }

+ c(zlie = z )

+ }

2.保险起见,设定z列为0,可能也不需要

> iris_10$z

3.运用自定义函数,对data.frame的x行进行判断,对y列进行运算,赋值到z列

4…注意Map的使用

> iris_10$z

+ iris_10,

+ Map(

+ get_With_function,

+ iris_10$Sepal.Length,

+ iris_10$Sepal.Width,

+ z

+ )

+ )

> iris_10

Sepal.Length Sepal.Width Petal.Length Petal.Width

1 5.1 3.5 1.4 0.2

2 4.9 3.0 1.4 0.2

3 4.7 3.2 1.3 0.2

4 4.6 3.1 1.5 0.2

5 5.0 3.6 1.4 0.2

6 5.4 3.9 1.7 0.4

7 4.6 3.4 1.4 0.3

8 5.0 3.4 1.5 0.2

9 4.4 2.9 1.4 0.2

10 4.9 3.1 1.5 0.1

Species z

1 setosa 35

2 setosa 0

3 setosa 0

4 setosa 0

5 setosa 36

6 setosa 39

7 setosa 0

8 setosa 34

9 setosa 0

10 setosa 0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

时间: 2021-03-25

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值