就在最近,我开始了在R的旅程,终于掌握了事情的诀窍。我有一个非常简单的问题,但我无法找到我正在寻找的答案。
我有一个使用Likert类型量表收集的调查回复数据集。有些范围从非常强烈的分歧到相反的(1-7),而另一些是1-5。我正在寻找一种简单的方法来重新编码数据集中的每一列,最好在我试图掌握它时使用dplyr包。到目前为止,我有这样的想法:
df是我的dataframe,它包含Q2.1_1: Q2.5_1列,我需要新的已编码的列是数字的,因为它们是当前的因素(我想以后运行描述符)。
这一行的问题是,它创建了一个向量来对其进行重新编码,而不是在我的df数据line中。我不确定是否应该将它附加到df中,或者是否有更好的方法只在df内部进行编辑。
as.numeric(recode(df$Q2.1_1, "Very slightly or not at all"=1, .... etc))发布于 2017-09-29 18:22:49
我想你要找的东西如下:
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_recodedmydata重新分配给自己,以便它现在有x_recoded。recode推断变量是数字,因为数字在编码的右边,所以不需要使用as.numeric。
https://stackoverflow.com/questions/46494495
复制相似问题