时间:2021-03-27来源:www.pcxitongcheng.com作者:电脑系统城
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 |
以上为个人经验,希望能给大家一个参考
2024-07-07
Java框架如何实现非阻塞式编程?2023-03-11
Android Jetpack 组件LiveData源码解析2023-03-11
hbuilderx设置Firefox浏览器安装路径教程 hbuilderx怎么设置Firefox浏览器安装路径?一、AVL树的概念 二、AVL树节点的定义 三、AVL树的插入 四、AVL树的旋转 1.左单旋 2.右单旋 3.左右双旋 4.右左双旋 五、进行验证 六、AVLTree的性能...
2023-03-09