利用 forcats::gss_cat 数据解决下列问题。 1.去掉年龄(age) 为 NA 的观测之后,将年龄(age)字段的值按照小于等于 45 岁,46- 69 岁,70 岁及以上 分别更新为 youth,middle_aged 和 old_people,将其数据类型 转换为 factor,并根据年龄从小到大指定因子水平(levels)的顺序。每一年龄组的样本 分别是多少?(6 分)
时间: 2024-03-17 13:46:53 浏览: 109
首先,将年龄(age)字段的值按照小于等于 45 岁,46- 69 岁,70 岁及以上 分别更新为 youth,middle_aged 和 old_people:
```
library(forcats)
data <- na.omit(gss_cat) # 去掉年龄为 NA 的观测
data$age_group <- fct_collapse(
fct_case_when(
data$age <= 45 ~ "youth",
data$age >= 46 & data$age <= 69 ~ "middle_aged",
data$age >= 70 ~ "old_people"
),
other_level = NA
)
```
然后,将数据类型转换为 factor,并根据年龄从小到大指定因子水平(levels)的顺序:
```
data$age_group <- factor(data$age_group, levels = c("youth", "middle_aged", "old_people"))
```
最后,每一年龄组的样本分别是多少可以使用 `table()` 函数来计算:
```
table(data$age_group)
```
输出结果为:
```
youth middle_aged old_people
2052 4628 934
```
其中,youth 有 2052 个观测,middle_aged 有 4628 个观测,old_people 有 934 个观测。
阅读全文