R语言中生成corpus语料后调用summary函数报错求助
问题原因与解决方法
报错原因
该错误源于创建corpus时手动指定docvars的方式与quanteda内部处理逻辑冲突。data_char_ukimmig2010是命名字符向量,quanteda会自动将向量名称作为文档名,手动传入docvars = data.frame(party = names(data))时,触发了内部维度检查异常,导致条件判断中出现缺失的TRUE/FALSE值。
解决方法
提供两种可行修复方式:
方法1:自动生成文档变量后手动添加
无需在创建corpus时指定docvars,先完成转换再添加变量:
library(quanteda) data <- data_char_ukimmig2010 # 直接创建corpus,自动使用向量名称作为文档名 data_corpus <- corpus(data) # 为corpus添加party变量 docvars(data_corpus, "party") <- names(data) # 正常调用summary summary(data_corpus)
方法2:规范docvars的传入格式
确保docvars数据框的行数与文档数量完全匹配,同时指定行名与文档名一致:
library(quanteda) data <- data_char_ukimmig2010 # 构建符合要求的docvars数据框 doc_vars <- data.frame(party = names(data), row.names = names(data)) # 创建corpus并传入规范后的docvars data_corpus <- corpus(data, docvars = doc_vars) summary(data_corpus)
验证结果
执行任意一种方法后,summary()均可正常输出包含party变量的文档统计信息,彻底解决条件判断中缺失TRUE/FALSE值的报错问题。
内容的提问来源于stack exchange,提问作者imdbreview
相关产品推荐
相关产品推荐

