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

时间:2017-09-29 17:57:06

标签: r statistics survey

刚刚开始我的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))

1 个答案:

答案 0 :(得分: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
  4. recode推断变量是数字的,因为数字位于重新编码的右侧,所以您不需要使用as.numeric