【发布时间】:2020-11-06 08:09:57
【问题描述】:
我有一个李克特量表问卷的数据框。所有问题都有 1-10 的等级,但为了进行一些分析,我想将等级重新编码为 1 到 5。
所以,我想重新编码我的数据框中的大部分变量,不包括标识变量。我尝试了几件事并查看了过去的线程,但我找不到解决方案,我总是收到错误。
由于我是 R 新手,我相信这只是一个菜鸟错误,但我希望你能帮助我。
代码如下:
z <- data.frame (ID = c(23,24,25,26,27),
Project = c("EA","EA","PLA","PLA","PLA"),
Q1 = c(3,9,8,5,10),
Q2 = c(1,2,6,7,9),
Q3 = c(4,8,6,6,10))
recode_z <- z[,3:5]
p3[,recode_p3] <- as.data.frame(lapply(p3[, recode_p3], function(x)ifelse(x == 2, 1),
ifelse(x == 3, 2),
ifelse(x== 4, 2),
ifelse(x== 5, 3),
ifelse(x== 6, 3),
ifelse(x== 7, 4),
ifelse(x== 8, 4),
ifelse(x== 9, 5),
ifelse(x== 10, 5,x)))
我收到此错误:
Error in .subset(x, j) : invalid subscript type 'list'
你能找出错误吗? 提前谢谢!
【问题讨论】:
-
你需要遍历一个data.frame
lapply(p3[, 3:5]... -
除了代码中的语法错误,请阅读
?cut,查看这篇文章:stackoverflow.com/q/40380112/680068