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
将函数 (summary
) 应用于向量 (wcomp$numbf.y
) by 一组 (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
也许有人可以回答我的问题。 下面的写法有什么区别?就我而言,我很想知道均值,但得到的数字不同。
> by(wcomp$numbf.y, wcomp$partw2, summary, na.rm = TRUE)
平均 2.473
summary(wcomp$numbf.y, wcomp$partw2, na.rm = TRUE)
平均 2.573
感谢您的帮助
在不知道您的数据的情况下:by
将函数 (summary
) 应用于向量 (wcomp$numbf.y
) by 一组 (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