也许有人可以回答我的问题。 以下著作之间有什么区别?就我而言,我很想知道平均值,但是我得到的数字不同。
> by(wcomp$numbf.y, wcomp$partw2, summary, na.rm = TRUE)
平均2.473
summary(wcomp$numbf.y, wcomp$partw2, na.rm = TRUE)
平均2.573
感谢您的帮助
答案 0 :(得分:1)
在不知道您的数据的情况下:by
将函数(summary
)应用于矢量(wcomp$numbf.y
),并被组(wcomp$partw2
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
调用时,我们计算每组的摘要(圆柱)。
我们还看到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