Создание таблиц данных с помощью SPSS в R

Используя пакет expss, я создаю перекрестные таблицы, читая файлы SPSS в R. На самом деле это работает отлично, но процесс загрузки занимает много времени. У меня есть папка, которая содержит различные файлы 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)


Все идеально и работает абсолютно нормально, но обычно загрузка больших файлов (например, 112 МБ, 48 МБ) занимает слишком много времени, что не очень хорошо.

Есть ли способ сделать его более эффективным по времени и сократить время на создание таблицы. Выпадающие списки создаются с помощью PHP.

Я искал это и нашел другую библиотеку под названием «убежище», но я не уверен, может ли это иметь для меня значение. Кто-нибудь может мне с этим помочь? Я был бы очень признателен за это. Заранее спасибо.


person Shubham Prabhakar    schedule 17.09.2019    source источник


Ответы (1)


Как написано в виньетке 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) 
person Gregory Demin    schedule 17.09.2019
comment
Можете ли вы помочь мне с вопросами с множественным выбором (mrset) о том, как читать файлы SPSS для вопросов с множественным выбором в R для перекрестных таблиц? Я пытался это сделать так много дней, но не смог найти решение для этого. Пожалуйста, посмотрите, можете ли вы помочь мне с этим, Буду очень признателен. заранее спасибо - person Shubham Prabhakar; 16.10.2019