Чтение файла данных Spss в R

Я использую пакет Expss. df<-read_spss("test.SAV") Я показываю следующее:

Предупреждение: в foreign :: read.spss (enc2native (файл), use.value.labels = FALSE,: Tally.SAV: найдены очень длинные строковые записи (тип записи 7, подтип 14), каждая из них будет импортирована в последовательных отдельных переменных

Он показывает 4174 переменных в среде Panel. Фактическое количество переменных в файле данных около 400. Может ли кто-нибудь из вас помочь мне в этом.


person Divya    schedule 10.12.2018    source источник
comment
stat.ethz.ch/R- manual / R-devel / library / foreign / html /, это поможет вам справиться с этой ошибкой.   -  person Hunaidkhan    schedule 10.12.2018


Ответы (1)


Как упоминалось в комментарии foreign::read.spss, разделите переменные SPSS с длинными (> 255 символов) символами на несколько столбцов. Если такие столбцы пусты, их можно без проблем удалить. Функция удобства для этого:

remove_empty_characters_after_foreign = function(data){
    empty_chars = vapply(data, FUN = function(column) is.character(column) & all(is.na(column)), FUN.VALUE = logical(1))
    additional_chars = grepl("00\\d$", colnames(data), perl = TRUE)
    to_remove = empty_chars & additional_chars
    if(any(to_remove)){
        message(paste0("Removing ", paste(colnames(data)[to_remove], collapse = ", "),"..."))
    }
    data[,!to_remove, drop = FALSE]

}

df = remove_empty_characters_after_foreign(df)
person Gregory Demin    schedule 12.12.2018