gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 31 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章R语言 实现data.frame 分组计数、求和等由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

方法1:

?
1
cnt = table( df $stratum)

方法2:

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

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

分组求均值:

?
1
2
tapply( df $psu, INDEX= df $stratum, FUN=mean)
#(等价于python中的df.groupby('stratum').psu.mean)

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

1.使用iris数据集 。

?
1
2
3
4
5
6
7
8
> iris_10 <- head (iris, n = 10)
## 自定义函数:如果x >= 5.0, z = y *10
> get_With_function <- function (x, y, z){
+   if (x >= 5.0){
+     z <- y * 10
+   }
+   c(zlie = z )
+ }

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

?
1
> iris_10$z <- 0

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

4…注意Map的使用 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
> iris_10$z <- with(
+   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

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

原文链接:https://blog.csdn.net/Asher117/article/details/111442012 。

最后此篇关于R语言 实现data.frame 分组计数、求和等的文章就讲到这里了,如果你想了解更多关于R语言 实现data.frame 分组计数、求和等的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com