如何在R语言中统计example.test数据集中的男女数量?
数据筛选与性别数量统计的正确方法
先修正你的筛选语法错误
你之前写的example.test(example.test$Sex =f)完全不符合R语言的数据框操作逻辑,正确的筛选写法应该是:
# 筛选所有女性样本 female_subset <- example.test[example.test$Sex == "F", ] # 筛选所有男性样本 male_subset <- example.test[example.test$Sex == "M", ]
关键注意事项:
- 数据框的行/列筛选要用方括号
[],不是圆括号() - 判断相等关系要用双等号
==,单等号=是赋值符号,不能用来做比较 - 性别标签
F/M是字符串类型,必须加双引号""
统计男女样本数量的三种实用方法
方法1:通过筛选后的数据行数统计
用nrow()函数获取筛选后子集的行数,就是对应性别的样本量:
female_num <- nrow(example.test[example.test$Sex == "F", ]) male_num <- nrow(example.test[example.test$Sex == "M", ])
方法2:用table()函数直接统计频次
这是最简洁的方法,直接对Sex列做频次统计,一步得到所有类别的数量:
sex_freq <- table(example.test$Sex) print(sex_freq)
运行后会输出类似结果:
F M 3 2
方法3:用dplyr包实现(tidyverse风格)
如果你习惯使用tidyverse工具链,用dplyr的count()函数更直观:
library(dplyr) example.test %>% count(Sex)
输出结果是一个结构化的数据框:
Sex n 1 F 3 2 M 2
内容的提问来源于stack exchange,提问作者ellen
相关产品推荐
相关产品推荐

