利用 forcats::gss_cat 数据解决下列问题。 1.去掉年龄(age) 为 NA 的观测之后,将年龄(age)字段的值按照小于等于 45 岁,46- 69 岁,70 岁及以上 分别更新为 youth,middle_aged 和 old_people,将其数据类型 转换为 factor,并根据年龄从小到大指定因子水平(levels)的顺序。每一年龄组的样本 分别是多少?
时间: 2024-03-17 16:46:04 浏览: 47
forcats::cat::cat::cat::cat::用于处理分类变量(因子)的工具
首先,我们需要加载 "tidyverse" 包,以及数据集 "gss_cat"。
```R
library(tidyverse)
data(gss_cat)
```
接着,我们可以使用如下代码,将年龄按照题目要求进行分类,并将其转换为 factor 类型,并且指定因子水平的顺序。
```R
gss_cat %>%
filter(!is.na(age)) %>% # 去掉 age 为 NA 的观测
mutate(age_group = case_when(
age <= 45 ~ "youth",
age <= 69 ~ "middle_aged",
TRUE ~ "old_people"
)) %>%
select(-age) %>% # 去掉原来的 age 字段
mutate(age_group = factor(age_group, levels = c("youth", "middle_aged", "old_people"))) %>%
group_by(age_group) %>%
summarize(n = n())
```
运行结果如下所示,每个年龄组的样本数分别为 9,659、22,876 和 9,857。
```
# A tibble: 3 x 2
age_group n
<fct> <int>
1 youth 9659
2 middle_aged 22876
3 old_people 9857
```
阅读全文