这篇文章主要介绍了R语言 实现data.frame 分组计数、求和等操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了R语言 实现data.frame 分组计数、求和等操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了R语言 实现data.frame 分组计数、求和等操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
df为1个data.frame对象,有stratum和psu两列,这里统计stratum列计数
|
1
|
cnt = table(df$stratum) |
|
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.Width1 5.1 3.5 1.4 0.22 4.9 3.0 1.4 0.23 4.7 3.2 1.3 0.24 4.6 3.1 1.5 0.25 5.0 3.6 1.4 0.26 5.4 3.9 1.7 0.47 4.6 3.4 1.4 0.38 5.0 3.4 1.5 0.29 4.4 2.9 1.4 0.210 4.9 3.1 1.5 0.1 Species z1 setosa 352 setosa 03 setosa 04 setosa 05 setosa 366 setosa 397 setosa 08 setosa 349 setosa 010 setosa 0 |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持米米素材网。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/Asher117/article/details/111442012
发表评论