您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在R語言中利用data.frame實現分組計數和求和,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
方法1:
cnt = table(df$stratum)
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)的列進行條件判斷計算
1.使用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 ) + }
2.保險起見,設定z列為0,可能也不需要
> iris_10$z <- 0
3.運用自定義函數,對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
看完上述內容,你們對怎么在R語言中利用data.frame實現分組計數和求和有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。