R語言 實現(xiàn)data.frame 分組計數(shù)、求和等
df為1個data.frame對象,有stratum和psu兩列,這里統(tǒng)計stratum列計數(shù)
方法1:
cnt = table(df$stratum)
方法2:
cnt = tapply(df$psu, INDEX=df$stratum, FUN=length)
在方法2的基礎(chǔ)上,只要改變FUN函數(shù)就可以實現(xiàn)分組求和、求均值等功能,如下
分組求均值:
tapply(df$psu, INDEX=df$stratum, FUN=mean)
#(等價于python中的df.groupby('stratum').psu.mean)
補充:R語言 | 自定義函數(shù)對數(shù)據(jù)集(data.frame)的列進行條件判斷計算
1.使用iris數(shù)據(jù)集
> iris_10 <- head(iris, n = 10)
## 自定義函數(shù):如果x >= 5.0, z = y *10
> get_With_function <- function(x, y, z){
+ if(x >= 5.0){
+ z <- y * 10
+ }
+ c(zlie = z )
+ }
2.保險起見,設(shè)定z列為0,可能也不需要
> iris_10$z <- 0
3.運用自定義函數(shù),對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.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
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言數(shù)據(jù)可視化繪圖Slope chart坡度圖畫法
這篇文章主要為大家介紹了R語言數(shù)據(jù)可視化繪圖Slope?chart坡度圖的畫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-02-02
R包制作后出現(xiàn)not available for錯誤問題解決解決
這篇文章主要為大家介紹了R包制作后出現(xiàn)not available for...錯誤的問題解決方式,有需要的朋友,可以借鑒參考下,希望能夠有所幫助2021-11-11
R語言入門在CentOS服務(wù)器上配置RStudio Server
最近在服務(wù)器(Linux)上進行RStudio Server的環(huán)境配置,其實主要的工作在RStudio的官方網(wǎng)站中已經(jīng)說明清楚了,關(guān)鍵是需要先安裝R,以及進行部分配置2021-11-11

