r - 在 R 中使用 SPSS 创建数据表
问题描述
使用 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”的库,但我不确定这是否也能给我带来意义。谁能帮我这个?我真的很感激。提前致谢。
解决方案
正如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)
推荐阅读
- python - GitPython:合并远程和本地分支以检查是否存在合并冲突
- git - 用于获取本地最新更改的 Git 命令
- dart - 具有 Maps 的 Null 感知运算符
- jquery - 如何使用 jQuery 为小空间中的大文本实现文本轮播?
- jsf - PrimeFaces 推送到 OmniFaces 推送迁移问题
- python - 多处理池在 Dask 函数中失败
- jquery - 如何在 Swagger 生成的 typescript-jquery 客户端中设置 OAuth 授权令牌
- android - Android Studio 中的应用共享按钮
- javascript - iOS 在 Powerpoint 中从 Cordova 应用程序打开 ppt/pptx 文件
- angular - HTTP_INTERCEPTORS 的 multi:true 属性是什么意思?