在 R 中使用 SPSS 创建数据表

Posted

技术标签:

【中文标题】在 R 中使用 SPSS 创建数据表【英文标题】:Create data tables using SPSS in R 【发布时间】:2020-01-18 12:02:44 【问题描述】:

使用 expss 包,我通过读取 R 中的 SPSS 文件来创建交叉表。这实际上工作得很好,但加载过程需要大量时间。我有一个文件夹,其中包含各种 SPSS 文件(通常只有 3 个文件),并通过 R 脚本获取三个文件中最后修改的文件。

setwd('/file/path/for/this/file/SPSS')

library(expss)

expss_output_viewer()

#get all .sav files
all_sav <- list.files(pattern ='\\.sav$')
#use file.info to get the index of the file most recently modified
pass<-all_sav[with(file.info(all_sav), which.max(mtime))]


mydata = read_spss(pass,reencode = TRUE)  # read SPSS file  mydata 
w <- data.frame(mydata)
args <- commandArgs(TRUE)


一切都完美无缺,但加载大文件(例如 112MB、48MB)通常需要太多时间,这并不好。

有没有一种方法可以使它更省时,并且创建表所需的时间更少。下拉菜单是使用 php 创建的。

我已经搜索过这个并找到了另一个名为“haven”的库,但我不确定这是否也能给我带来意义。谁能帮我这个?我真的很感激。提前致谢。

【问题讨论】:

【参考方案1】:

正如expss vignette (https://cran.r-project.org/web/packages/expss/vignettes/labels-support.html) 中所写,您可以通过以下方式使用:

# we need to load packages strictly in this order to avoid conflicts
library(haven)
library(expss)
spss_data = haven::read_spss("spss_file.sav")
# add missing 'labelled' class
spss_data = add_labelled_class(spss_data) 

【讨论】:

你能帮我解决关于如何在 R 中为交叉表读取多选问题的 SPSS 文件的多选问题 (mrset) 吗?我已经尝试了很多天,但无法找到解决方案。请看看你是否可以帮助我,将不胜感激。提前致谢

以上是关于在 R 中使用 SPSS 创建数据表的主要内容,如果未能解决你的问题,请参考以下文章

在r语言中用啥命令读取全部数据

生物学霸-SPSS数据挖掘视频教学(送1000份标书+SPSS R语言)

怎样解读spss皮尔逊 P值 r值

R中的标签(从SPSS添加一些标签)

R语言使用haven包的read_spss函数读取spss格式数据使用haven包的read_sas函数读取SAS格式数据使用haven包的read_dta函数读取Stata格式数据

在R中logistic回归,对新的数据做预测出现新的层次,怎么办