如何完整导出quanteda生成的textstat_simil结果文档,不丢失观测值与变量?
解决quanteda相似性结果完整导出的问题
嘿,作为quanteda新手遇到这种导出问题太正常了!我来帮你搞定这个事儿~
首先得搞清楚:你用textstat_simil()得到的simil_latam其实不是普通的数据框,它是dist类或者矩阵类的对象,这就是直接用write.xlsx()导出会丢变量、用view()导出只有1000行的原因——view()默认只显示前1000条数据,而直接导出非数据框对象时,openxlsx会按它的规则解析,导致维度丢失。
正确的解决步骤:把相似性结果转换成标准数据框再导出
- 先把
simil_latam转换成矩阵,再转成数据框,同时保留原来的文档名(也就是dfm_latam里的每条观测标识):
# 转换为矩阵后再转成数据框,保留行名 simil_full_df <- as.data.frame(as.matrix(simil_latam)) # 把行名(原文档ID)单独做成一列,方便后续查看 simil_full_df$original_document <- rownames(simil_full_df) # 可选:调整列顺序,把文档ID列放在最前面 simil_full_df <- simil_full_df[, c("original_document", colnames(simil_full_df)[-ncol(simil_full_df)])]
- 现在用
openxlsx导出这个标准数据框就没问题了:
openxlsx::write.xlsx(simil_full_df, file = "F:\\path\\simil_latam_full.xlsx")
验证一下
你可以先用dim(simil_full_df)检查一下,行数应该和dfm_latam的观测数一致(27000+),列数应该是3列:original_document + 你那两个cosine对比文档的列,这样就确保所有数据都被保留啦。
内容的提问来源于stack exchange,提问作者ecirtaglip
相关产品推荐
相关产品推荐

