在R

时间:2018-12-10 11:02:34

标签: r expss

我正在使用Expss pakage。 df<-read_spss("test.SAV") 我显示以下内容:

  

警告消息:在国外:: read.spss(enc2native(file),   use.value.labels = FALSE,:Tally.SAV:很长的字符串记录   找到(记录类型7,子类型14),每个都将导入   连续的独立变量

在环境面板中显示4174个变量,数据文件中的实际变量数约为400。 你们中间有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

如评论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)