欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言 實(shí)現(xiàn)data.frame 分組計數(shù)、求和等

 更新時間:2021年03月27日 11:22:03   作者:Asher117  
這篇文章主要介紹了R語言 實(shí)現(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ù)就可以實(shí)現(xiàn)分組求和、求均值等功能,如下

分組求均值:

tapply(df$psu, INDEX=df$stratum, FUN=mean)
#(等價于python中的df.groupby('stratum').psu.mean)

補(bǔ)充:R語言 | 自定義函數(shù)對數(shù)據(jù)集(data.frame)的列進(jìn)行條件判斷計算

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.運(yùn)用自定義函數(shù),對data.frame的x行進(jìn)行判斷,對y列進(jìn)行運(yùn)算,賦值到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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評論