簡體   English   中英

by 和 summary 和有什么不一樣?

[英]What is the difference between by and summary?

也許有人可以回答我的問題。 下面的寫法有什么區別? 就我而言,我很想知道均值,但得到的數字不同。

> by(wcomp$numbf.y, wcomp$partw2, summary, na.rm = TRUE)

平均值 2.473

summary(wcomp$numbf.y, wcomp$partw2, na.rm = TRUE)

平均值 2.573

謝謝你的幫助

在不知道您的數據的情況下: by將 function( summary )應用於一個組( wcomp$partw2 wcomp$numbf.y

summary創建您的數據的摘要(有點忽略第二個參數)。

另請參閱此 MWE(我使用了mtcars數據集並將一些值設置為NA


df <- mtcars
df[c(1, 5), c("cyl", "mpg")] <- NA
head(df)
#>                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4           NA  NA  160 110 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
#> Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout   NA  NA  360 175 3.15 3.440 17.02  0  0    3    2
#> Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

by(df$mpg, df$cyl, summary)
#> df$cyl: 4
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   21.40   22.80   26.00   26.66   30.40   33.90 
#> ------------------------------------------------------------ 
#> df$cyl: 6
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   17.80   18.38   19.45   19.53   20.68   21.40 
#> ------------------------------------------------------------ 
#> df$cyl: 8
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   10.40   14.30   15.20   14.82   15.80   19.20

summary(df$mpg, df$cyl)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#>   10.40   15.28   19.20   20.11   22.80   33.90       2
summary(df$mpg)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#>   10.40   15.28   19.20   20.11   22.80   33.90       2
summary(df$cyl)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#>   4.000   4.000   6.000   6.133   8.000   8.000       2

reprex package (v0.3.0) 創建於 2020-10-07

我們看到平均值都是不同的,因為我們正在計算不同的均值:對所有 obs 一次(在摘要調用中),當使用by調用時,我們計算每組的摘要(cyl)。

我們還看到summary()的第二個參數被忽略了。

這是否回答你的問題?

如果您只對均值感興趣,請嘗試

mean(df$mpg, na.rm = TRUE) #< na.rm needed here!
#> [1] 20.10667

by(df$mpg, df$cyl, mean)
#> df$cyl: 4
#> [1] 26.66364
#> ------------------------------------------------------ 
#> df$cyl: 6
#> [1] 19.53333
#> ------------------------------------------------------ 
#> df$cyl: 8
#> [1] 14.82308

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM