在数据框架内重新编码李克特量表 - 为研究方法学习R的建议?

问题描述 投票:1回答:1

就在最近,我开始了我的R之旅,终于掌握了一切。我有一个非常简单的问题,但我无法找到我正在寻找的答案。

我有一个使用Likert类型量表收集的调查回复数据集。一些范围从非常强烈不同意到相反(1-7),而其他则是1-5。我正在寻找一种简单的方法来重新编码数据集中的每一列,最好使用dplyr包,因为我正在尝试掌握它。到目前为止,我有这个:

df是我的数据框,其中包含Q2.1_1:Q2.5_1列。我需要新的重新编码列是数字,因为它们是当前因素(我想稍后运行描述)。

这一行的问题在于它创建了一个对其进行重新编码的向量,但不在我的df数据帧中。我不确定我是否应该将此附加到df,或者是否有更好的方法来在df内进行编辑。

as.numeric(recode(df$Q2.1_1, "Very slightly or not at all"=1, .... etc))
r statistics survey
1个回答
1
投票

我想你正在寻找类似以下的东西:

mydata <- data.frame(x = c("A lot", "Some", "Not at all"))

mydata <- mutate(mydata, x_recoded = recode(x, "A lot" = 1, "Some" = 2, "Not at all" = 3))

mydata

           x x_recoded
1      A lot         1
2       Some         2
3 Not at all         3

这段代码是:

  1. 创建示例数据
  2. 使用dplyr的mutate()函数创建一个新的变量x_recoded
  3. 将变异的数据框mydata分配回自身,所以它现在有x_recoded

recode推断变量是数字的,因为数字位于重新编码的右侧,因此您不需要使用as.numeric

© www.soinside.com 2019 - 2024. All rights reserved.