【发布时间】:2021-03-17 18:12:42
【问题描述】:
我当前的数据集有一个教育变量,它有 18 个类别,从“无资格”到“研究生”
我想创建一个仅包含 5 个类别的新教育变量(例如,没有资格 - 小学 - 中学 - 学士 - 研究生)。我想将 18 个类别中的一些合并在一起,在我的新变量中形成一个类别(例如,将类别 3、4、5 合并为中学)。
【问题讨论】:
标签: r
我当前的数据集有一个教育变量,它有 18 个类别,从“无资格”到“研究生”
我想创建一个仅包含 5 个类别的新教育变量(例如,没有资格 - 小学 - 中学 - 学士 - 研究生)。我想将 18 个类别中的一些合并在一起,在我的新变量中形成一个类别(例如,将类别 3、4、5 合并为中学)。
【问题讨论】:
标签: r
您可以使用来自 dplyr 的 recode() 重新编码类别。它是这样的:
library(dplyr)
name_of_dataset[[number_of_old_column]] %>% recode('1st grade' = 'primary school', '2nd grade' = 'primary school')
等等。旧名在前,新名在后。您可以使用来自 dplyr 的 mutate() 将新数据放入新列中。它是这样的:
name_of_dataset %>% mutate(name_of_new_column = recode(.[[number_of_old_column]], '1st grade' = 'primary school', '2nd grade' = 'primary school'))
【讨论】:
.[[education]],但它应该是旧列的编号,而不是它的名称。如果你想使用这个名字,你可以写.$education(注意点)。所以它要么是.[[3]] 要么是.$education,但不是.[[education]]。
mutate() 输入 EducationLevel 有问题。 x 递归索引在级别 2 失败 i 输入 EducationLevel 是 recode(...)
class(name_of_dataset)。 EducationLevel 有 NA 吗?如果您不知道,请尝试any(is.na(name_of_dataset$EducationLevel))。