今天就跟大家聊聊有关怎么在R语言中利用data.frame实现分组计数和求和,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
方法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)的列进行条件判断计算
使用iris数据集
> 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 )+ }
保险起见,设定z列为0,可能也不需要
> iris_10$z <- 0
运用自定义函数,对data.frame的x行进行判断,对y列进行运算,赋值到z列
4…注意Map的使用
> 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
看完上述内容,你们对怎么在R语言中利用data.frame实现分组计数和求和有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。