在 R 中,转换为数字的因子变量不会这样显示,重新编码李克特量表也不起作用。为什么是这样?
In R, converted factor variables to numeric don't show as such and recoding Likert scale doesn't work. Why is this?
所以我使用这个函数在 R 中将因子转换为数字:
Project_dataset$Q3_2NUM<-as.numeric(Project_dataset$Q3_2)
Project_dataset$Q3_3NUM<-as.numeric(Project_dataset$Q3_3)
Project_dataset$Q3_4NUM<-as.numeric(Project_dataset$Q3_4)
我也是这样查的:
class(Project_dataset$Q3_1NUM)
class(Project_dataset$Q3_2NUM)
class(Project_dataset$Q3_3NUM)
class(Project_dataset$Q3_4NUM)
并确认它确实已更改为 'numeric' 值。但是,当我仔细检查此功能时:
Project_dataset$Q3_1NUM==Project_dataset$Q3_1
Project_dataset$Q3_2NUM==Project_dataset$Q3_2
Project_dataset$Q3__3NUM==Project_dataset$Q3_3
Project_dataset$Q3__4NUM==Project_dataset$Q3_4
它给出了 "FALSE"
的输出。我也没有看到我的数据集中从因子到数值的变化。
此外,我正在尝试在我的数据集中重新编码 Likert 量表,以便我可以 运行 卡方检验、斯皮尔曼相关性以及准确的逻辑回归。通过重新编码,这就是我的意思:这是我的变量之一的李克特量表范围:
1=从不,2=每月少于一次,3=每月一次,4=每月 2-3 次,5=每周一次,6=每周 2-3 次,7=每天, 8=每天多次)
我正在尝试将 2,3 和 4 结合起来,因此每月 2=0-3 次。我也想结合 5,6,和 7 所以每周 3=1-3 次。
到目前为止,我已经尝试了不同的版本:
Project_dataset$Q8_2<-recode(Project_dataset$Q8_2, "(2)Less than once a month:(4)2-3 times a month = (2) 0-3 times a month")
但是没有用。我应该怎么办?提前致谢!
我该怎么办?感谢任何帮助,谢谢!
我们可以使用 lapply
遍历数据集中感兴趣的列,并将数据集(vector
)的列应用到 numeric
。列可能是 factor
。在这种情况下,我们先将其转换为 character
,然后再转换为 numeric
nm1 <- paste0("Q3_", 1:4)
nm2 <- paste0(nm1, "NUM")
Project_dataset[nm2] <- lapply(Project_dataset[nm1],
function(x) as.numeric(as.character(x)))
或者如果列只有数值,则使用 type.convert
Project_dataset <- type.convert(Project_dataset, as.is = TRUE)
所以我使用这个函数在 R 中将因子转换为数字:
Project_dataset$Q3_2NUM<-as.numeric(Project_dataset$Q3_2)
Project_dataset$Q3_3NUM<-as.numeric(Project_dataset$Q3_3)
Project_dataset$Q3_4NUM<-as.numeric(Project_dataset$Q3_4)
我也是这样查的:
class(Project_dataset$Q3_1NUM)
class(Project_dataset$Q3_2NUM)
class(Project_dataset$Q3_3NUM)
class(Project_dataset$Q3_4NUM)
并确认它确实已更改为 'numeric' 值。但是,当我仔细检查此功能时:
Project_dataset$Q3_1NUM==Project_dataset$Q3_1
Project_dataset$Q3_2NUM==Project_dataset$Q3_2
Project_dataset$Q3__3NUM==Project_dataset$Q3_3
Project_dataset$Q3__4NUM==Project_dataset$Q3_4
它给出了 "FALSE"
的输出。我也没有看到我的数据集中从因子到数值的变化。
此外,我正在尝试在我的数据集中重新编码 Likert 量表,以便我可以 运行 卡方检验、斯皮尔曼相关性以及准确的逻辑回归。通过重新编码,这就是我的意思:这是我的变量之一的李克特量表范围:
1=从不,2=每月少于一次,3=每月一次,4=每月 2-3 次,5=每周一次,6=每周 2-3 次,7=每天, 8=每天多次)
我正在尝试将 2,3 和 4 结合起来,因此每月 2=0-3 次。我也想结合 5,6,和 7 所以每周 3=1-3 次。
到目前为止,我已经尝试了不同的版本:
Project_dataset$Q8_2<-recode(Project_dataset$Q8_2, "(2)Less than once a month:(4)2-3 times a month = (2) 0-3 times a month")
但是没有用。我应该怎么办?提前致谢!
我该怎么办?感谢任何帮助,谢谢!
我们可以使用 lapply
遍历数据集中感兴趣的列,并将数据集(vector
)的列应用到 numeric
。列可能是 factor
。在这种情况下,我们先将其转换为 character
,然后再转换为 numeric
nm1 <- paste0("Q3_", 1:4)
nm2 <- paste0(nm1, "NUM")
Project_dataset[nm2] <- lapply(Project_dataset[nm1],
function(x) as.numeric(as.character(x)))
或者如果列只有数值,则使用 type.convert
Project_dataset <- type.convert(Project_dataset, as.is = TRUE)