在 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 创建数据表的主要内容,如果未能解决你的问题,请参考以下文章
生物学霸-SPSS数据挖掘视频教学(送1000份标书+SPSS R语言)
R语言使用haven包的read_spss函数读取spss格式数据使用haven包的read_sas函数读取SAS格式数据使用haven包的read_dta函数读取Stata格式数据