0

不好意思问这个

但是所有其他问题,甚至帮助和操作方法似乎都更加先进,以至于“简单”的事情似乎没有被发现:

我有自己的调查数据。它在 Excel 中。我的 Likert 量表编码为 0-5

  • 0 不考虑
  • 1 非常低
  • 2 低
  • 3 中
  • 4 高
  • 5 非常高

我将其导出为 CSV,标题是问题,每行下方代表一个受访者。

Q1;Q2;Q3;Q4 
0;3;3;2
1;0;3;3
2;0;5;4

这应该是直截了当的,对吧?

我将其导入数据集

DFG <- read.csv("export.csv", headers = TRUE, sep = ";")

我可以通过打印(DFG)看到数据集,标题看起来也不错。但这就是我得到的。李克特抱怨

All items (columns) must have the same number of levels
items parameter contains non-factors. Will convert to factors

所有列的数据量相同,58 组,没有未回答的项目。

我什至没有考虑添加分组,我离条形图太远了,我什至无法让它工作。我错过了什么?

第2步:

在将希瑟的解决方案应用于我最初的问题之后

DFG <- lapply(DFG, factor, levels = 0:5)

显然,现在 R 知道 Levels (以前不知道),我得到一个 print(DFG) 结果

$H1.1..founders..education
[1] 3 4 2 2 5 4 4 3 3 4 3 1 2 2 4 4 4 3 3 4 3 3 4 3 3 3 3 2 3 4 3 2 3 4 5
[36] 2 1 2 3 3 5 5 2 3 3 3 2 3 3 3 3 3 0 4 2 4 2 0
Levels: 0 1 2 3 4 5

$H1.2..founders..past.professional.experience
[1] 5 5 5 4 5 5 5 3 3 5 5 3 2 5 4 5 5 4 4 4 3 5 4 4 3 4 3 3 5 5 4 2 4 4 5
[36] 3 5 4 4 4 5 5 4 4 5 4 3 4 5 4 5 4 3 4 3 5 5 4
Levels: 0 1 2 3 4 5

(缩短)

如果我把它改成

 DFG <- lapply(DFG, ordered, levels = 0:5)

我可以针对它运行 net_stacked() 脚本。耶,开心!谢谢。

4

1 回答 1

2

当您读取read.csv列中的数据时,将作为数字变量读取(因为您没有另外指定)。

您正在使用的函数要求列是因子 - 因为它们不是,它会尝试将它们转换为因子。问题是它不知道每个项目的可能级别是 0-5。因此,每列都转换为仅具有观察到的水平的因子,并且由于没有观察到每个项目的完整水平集,因此您会收到错误,因为水平不同。

要解决此问题,请自行将变量转换为因子:

DFG <- lapply(DFG, factor, levels = 0:5)
于 2013-10-18T13:16:02.977 回答