时间: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.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 |
以上为个人经验,希望能给大家一个参考
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