刚刚开始我的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))
答案 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
此代码为:
mutate()
函数创建新变量x_recoded
mydata
分配给自身,使其现在有x_recoded
recode
推断变量是数字的,因为数字位于重新编码的右侧,所以您不需要使用as.numeric
。