我正在尝试学习R并想要引入一个SPSS文件,我可以在SPSS中打开它.
我试过使用read.spssfrom foreign和spss.getfrom Hmisc.两条错误消息都是相同的.
这是我的代码:
## install.packages("Hmisc")
library(foreign)
## change the working directory
getwd()
setwd('C:/Documents and Settings/BTIBERT/Desktop/')
## load in the file
## ?read.spss
asq <- read.spss('ASQ2010.sav', to.data.frame=T)
Run Code Online (Sandbox Code Playgroud)
由此产生的错误:
read.spss中的错误("ASQ2010.sav",to.data.frame = T):读取系统文件头的错误此外:警告消息:在read.spss("ASQ2010.sav",to.data.frame = T):ASQ2010.sav:位置0:字符`\ 000'(
此外,我尝试将SPSS文件保存为SPSS 7 .sav文件(之前使用的是SPSS 18).
警告消息:1:在read.spss("ASQ2010_test.sav",to.data.frame = T)中:ASQ2010_test.sav:系统文件2中遇到无法识别的记录类型7,子类型14:在read.spss中("ASQ2010_test. sav",to.data.frame = T):ASQ2010_test.sav:系统文件中遇到无法识别的记录类型7,子类型18
ggl*_*gll 46
我有一个类似的问题,并在提示read.spss帮助后解决了它.使用包memisc,您可以导入一个可移植的 SPSS文件,如下所示:
data <- as.data.set(spss.portable.file("filename.por"))
Run Code Online (Sandbox Code Playgroud)
同样,对于.sav文件:
data <- as.data.set(spss.system.file('filename.sav'))
Run Code Online (Sandbox Code Playgroud)
虽然在这种情况下我似乎错过了一些字符串值,而便携式导入无缝地工作.spss.portable.file索赔的帮助页面:
导入器机制比"foreign"包的read.spss和read.dta更灵活和可扩展,因为大多数文件头的解析都是在R中完成的.它们还适用于高效加载大型数据集.最重要的是,导入程序对象支持此程序包提供的标签,缺失值和描述.
Jaa*_*nus 18
在read.spss似乎是过时的一点点,所以我用包叫memisc.
要实现这一点,请执行以下操作:
install.packages("memisc")
data <- as.data.set(spss.system.file('yourfile.sav'))
Run Code Online (Sandbox Code Playgroud)
我知道这篇文章很老,但是我也遇到了将Qualtrics SPSS文件加载到R中的问题.R的read.spss代码很久以前来自PSPP,并且暂时没有更新.(而且Hmisc的代码也使用read.spss(),所以那里没有运气.)
好消息是,PSPP 0.6.1应该可以正确读取文件,只要在Qualtrics中的"下载数据"页面上指定"短 - 255(SPSS 12.0及更早版本)"的"字符串宽度"即可.将其读入PSPP,保存新副本,您应该开展业务.尴尬,但免费.
,
你也可以试试这个:
setwd("C:/Users/rest of your path")
library(haven)
data <- read_sav("data.sav")
Run Code Online (Sandbox Code Playgroud)
如果要从一个文件夹中读取所有文件:
temp <- list.files(pattern = "*.sav")
read.all <- sapply(temp, read_sav)
Run Code Online (Sandbox Code Playgroud)
小智 5
看起来R read.spss实现不完整或破坏.但是,R2.10.1比R2.8.1更好.看起来R对sav文件中的自定义属性感到不满,即使是2.10.1(我最新的).R也可能无法理解文件中的字符编码字段,特别是它可能不适用于SPSS Unicode文件.
您可以尝试在SPSS中打开文件,删除任何自定义属性,然后重新保存文件.您可以使用SPSS命令查看是否存在自定义属性
显示属性.
如果是这样,请删除它们(请参阅VARIABLE ATTRIBUTE和DATAFILE ATTRIBUTE命令),然后重试.
HTH,Jon Peck
您可以使用上述解决方案或您当前使用的解决方案来读取SPSS文件R.只需确保该命令随文件一起提供,即可正确读取.我有同样的错误,问题是,SPSS无法访问该文件.您应确保文件路径正确,文件可访问且格式正确.
library(foreign)
asq <- read.spss('ASQ2010.sav', to.data.frame=TRUE)
Run Code Online (Sandbox Code Playgroud)
就警告信息而言,它不会影响数据.记录类型7用于在较新的SPSS软件中存储功能,以使旧的SPSS软件能够读取新数据.但不影响数据.我已经使用了很多次,数据也没有丢失.
您也可以在http://r.789695.n4.nabble.com/read-spss-warning-message-Unrecognized-record-type-7-subtype-18-encountered-in-system-file-td3000775上阅读此内容.的.html#a3007945