很抱歉问这个,
但所有其他问题,甚至是帮助和方法看起来都更加先进,“简单”的事情似乎已经被发现:
我有自己的调查数据。它在Excel中。我的像Likert一样的编码为0-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步:
将Heather的解决方案应用于
的初始问题之后DFG <- lapply(DFG, factor, levels = 0:5)
显然,现在R知道Levels(之前没有),我得到了打印(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()脚本。耶,快乐!感谢。
答案 0 :(得分:2)
当您使用read.csv
读取数据时,列将作为数字变量读入(因为您没有另外指定)。
您正在使用的功能要求列是因子 - 因为它们不是,它会尝试将它们转换为因子。问题是它不知道每个项目的可能级别为0-5。因此,每列都转换为只有观察到的水平的因子,并且由于没有观察到每个项目的完整水平集,因为水平不同,会出现错误。
要解决此问题,请自行将变量转换为因子:
DFG <- lapply(DFG, factor, levels = 0:5)