之前我曾在spss.system.file
包中使用过memisc
函数,并且它始终可以正常运行。但是,最近我尝试导入几个包含String变量的SPSS文件。似乎每当我使用spss.system.file
导入这些变量时,它会产生6个额外的空白列。例如,如果以下字符向量是SPSS中名为Age:
Age <- c("18 years old", "18 years old", "24", "19 years old", "18", "18")
使用spss.system.file
将其读入R会导致R data.frame
(在从data.set
转换后)使用包含实际数据的Age
变量(类{ {1}})然后factor
,Age0
,... Age1
- 所有课程Age6
,但都完全为空。
有没有人有过这个问题的经验或者是什么导致它的想法?我知道可能将SPSS文件转换为factor
文件可能会使读取更好,但这需要安装SPSS。
答案 0 :(得分:2)
您可以使用外部包中的read.spss函数并设置为.data.frame = TRUE和stringAsFactors = FALSE。 sji.viewSPSS函数不会阻止将字符串转换为因子,我可能会更改它或为此功能添加至少一个选项。
编辑,由于新的软件包开发 您现在也可以尝试haven-package(现在也在CRAN上)或the updated sjPlot package,它也使用避风套的读取功能。
答案 1 :(得分:0)
您是否可以尝试使用sjPlot包读取.sav文件并查看是否收到相同的错误?
install.packages("sjPlot"); library(sjPlot)
df <- sji.SPSS(...)
sji.viewSPSS(df)
答案 2 :(得分:0)
好的,这件事对我有用,但我不明白为什么。答案是:在你的spss文件(变量视图)中将字符串变量的宽度更改为更短的值。究竟有多短是不够短也不够清楚它甚至似乎在变量之间变化(?!)但是当没有真正的宽字符串变量时,额外的空列也将消失。 (作为奖励,我们会稍微考虑因素水平中的尾随空白量)