2

使用 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”的库,但我不确定这是否也能给我带来意义。谁能帮我这个?我真的很感激。提前致谢。

4

1 回答 1

0

正如expss小插图(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) 
于 2019-09-17T19:35:57.310 回答