2

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

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

它在环境面板中显示 4174 个变量。数据文件中的实际变量数约为 400。你们中的任何人都可以帮我解决这个问题。

4

1 回答 1

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)
于 2018-12-12T16:26:21.210 回答