首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中,转换成数字的因子变量不显示为数字,而且对Likert刻度进行重新编码也不起作用。为什么会这样呢?

在R中,转换成数字的因子变量不显示为数字,而且对Likert刻度进行重新编码也不起作用。为什么会这样呢?
EN

Stack Overflow用户
提问于 2020-12-05 22:55:09
回答 1查看 191关注 0票数 1

因此,我使用这个函数将R中的因子转换为数字:

代码语言:javascript
复制
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)

我也是这样检查的:

代码语言:javascript
复制
class(Project_dataset$Q3_1NUM)
class(Project_dataset$Q3_2NUM)
class(Project_dataset$Q3_3NUM)
class(Project_dataset$Q3_4NUM)

它还证实了它确实已更改为“数字”值。但是,当我再次检查此函数时:

代码语言:javascript
复制
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 Scales,以便我能够准确地运行卡方检验、spearman相关性以及后勤回归。通过重新编码,我的意思是:这是我对其中一个变量的Likert刻度范围:

1=从不,2=less每月一次,3=once每月4次,每月2-3次,5=once每周6次,每周2-3次,7=daily,每天3次)

我正尝试将2,3,4,SO2=0-3次一个月.我还想把5,6,7,SO3=每周1-3次结合起来。

到目前为止,我已经尝试过不同的版本:

代码语言:javascript
复制
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")

但没起作用。我该怎么办?提前感谢!

我做什么好?任何帮助都是感激的,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-05 22:56:41

我们可以用lapply循环数据集中感兴趣的列,并将数据集(即vector)的列应用到numeric。有可能列是factor。在这种情况下,我们首先将其转换为character,然后再转换为numeric

代码语言:javascript
复制
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

代码语言:javascript
复制
Project_dataset <- type.convert(Project_dataset, as.is = TRUE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65162819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档