【问题标题】:How do I merge specific rows into a new column?如何将特定行合并到新列中?
【发布时间】:2021-03-17 18:12:42
【问题描述】:

我当前的数据集有一个教育变量,它有 18 个类别,从“无资格”到“研究生”

我想创建一个仅包含 5 个类别的新教育变量(例如,没有资格 - 小学 - 中学 - 学士 - 研究生)。我想将 18 个类别中的一些合并在一起,在我的新变量中形成一个类别(例如,将类别 3、4、5 合并为中学)。

【问题讨论】:

标签: r


【解决方案1】:

您可以使用来自 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'))

【讨论】:

  • 错误:“bes%>%mutate(Educationlevel = recode(.[[education]], 12 =") 中出现意外 '='
  • @Kuddiking 刚刚重新编码后,你写了.[[education]],但它应该是旧列的编号,而不是它的名称。如果你想使用这个名字,你可以写.$education(注意点)。所以它要么是.[[3]] 要么是.$education,但不是.[[education]]
  • 错误:mutate() 输入 EducationLevel 有问题。 x 递归索​​引在级别 2 失败 i 输入 EducationLevelrecode(...)
  • 你能发布你输入的确切命令吗?另外,您的数据集的格式是什么?它是一个data.frame,一个列表吗?如果您不知道,请尝试class(name_of_dataset)。 EducationLevel 有 NA 吗?如果您不知道,请尝试any(is.na(name_of_dataset$EducationLevel))
猜你喜欢
  • 2019-12-02
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2022-01-15
相关资源
最近更新 更多