【发布时间】:2017-05-02 20:43:24
【问题描述】:
代码等级// i/q// 考试成绩// 性别
1 4 40 86 男
2 11 65 88 女性
3 27 80 70 男
4 53 80 61 男
5 4 40 89 男
6 22 70 60 女性
7 16 20 81 女性
8 21 55 75 女性
9 25 50 69 女性
10 18 40 82 女
从下面的列表中,r 代码分别计算男性和女性考试成绩的平均值和标准差。
【问题讨论】:
标签: r
代码等级// i/q// 考试成绩// 性别
1 4 40 86 男
2 11 65 88 女性
3 27 80 70 男
4 53 80 61 男
5 4 40 89 男
6 22 70 60 女性
7 16 20 81 女性
8 21 55 75 女性
9 25 50 69 女性
10 18 40 82 女
从下面的列表中,r 代码分别计算男性和女性考试成绩的平均值和标准差。
【问题讨论】:
标签: r
您可以使用 dplyr 包轻松实现此目的:
> data
# A tibble: 10 × 5
code rank iq score gender
<int> <int> <int> <dbl> <chr>
1 1 4 40 86.298 Male
2 2 11 65 88.716 Female
3 3 27 80 70.178 Male
4 4 53 80 61.312 Male
5 5 4 40 89.522 Male
6 6 22 70 60.506 Female
7 7 16 20 81.462 Female
8 8 21 55 75.820 Female
9 9 25 50 69.372 Female
10 10 18 40 82.268 Female
使用 group_by() 对性别列上的数据进行分组并使用 summarise() 进行汇总可以给你答案:
> data %>%
+ group_by(gender) %>%
+ summarise(avg_score = mean(score),
+ sd_score = sd(score))
# A tibble: 2 × 3
gender avg_score sd_score
<chr> <dbl> <dbl>
1 Female 76.35733 10.13981
2 Male 76.82750 13.36397
还有其他方法可以做到这一点,但从长远来看,学习一点 dplyr 来做这些事情可能会有所帮助。
如需详细教程,请阅读 Hadley 的书 R for Data Science 中的 Transformation 章节
【讨论】: