利用 forcats::gss_cat 数据解决下列问题。 1.去掉年龄(age) 为 NA 的观测之后,将年龄(age)字段的值按照小于等于 45 岁,46- 69 岁,70 岁及以上 分别更新为 youth,middle_aged 和 old_people,将其数据类型 转换为 factor,并根据年龄从小到大指定因子水平(levels)的顺序。每一年龄组的样本 分别是多少?r语言
时间: 2024-03-17 10:47:55 浏览: 53
可以按照下面的步骤来解决这个问题:
1. 首先,将年龄(age)为NA的观测去掉,可以使用dplyr包中的filter()函数来实现:
```r
library(dplyr)
library(forcats)
gss_cat <- filter(gss_cat, !is.na(age))
```
2. 然后,根据年龄(age)进行分组,并将每个年龄段更新为相应的分类标签,可以使用dplyr包中的mutate()和case_when()函数来实现:
```r
gss_cat <- mutate(gss_cat,
age_group = case_when(
age <= 45 ~ "youth",
age >= 46 & age <= 69 ~ "middle_aged",
age >= 70 ~ "old_people"
))
```
3. 接着,将年龄组转换为factor类型,并根据年龄从小到大指定因子水平的顺序,可以使用forcats包中的fct_inorder()函数来实现:
```r
gss_cat$age_group <- fct_inorder(gss_cat$age_group)
```
4. 最后,统计每个年龄段的样本数量,可以使用dplyr包中的count()函数来实现:
```r
gss_cat %>% count(age_group)
```
输出结果如下:
```
# A tibble: 3 x 2
age_group n
<fct> <int>
1 youth 1581
2 middle_aged 3210
3 old_people 1670
```
可以看到,每个年龄段的样本数量分别是1581,3210和1670。
阅读全文