如何在R中将pairwise.wilcox.test结果导出为CSV表格?
解决pairwise.wilcox.test结果导出为CSV的问题
问题背景
pairwise.wilcox.test返回的是自定义列表对象,直接用as.data.frame()无法完成转换,导致无法导出为CSV文件。
方法1:手动提取p值矩阵转长格式
pairwise.wilcox.test的结果中,$p.value存储了配对检验的校正p值矩阵,我们可以将其转换为便于导出的长格式DataFrame:
# 执行配对检验 table <- pairwise.wilcox.test(df$Total, df$Method_Group, p.adjust.method = "BH") # 提取p值矩阵并转换为长格式 p_df <- as.data.frame(table$p.value) %>% tibble::rownames_to_column("Group1") %>% tidyr::pivot_longer(-Group1, names_to = "Group2", values_to = "Adjusted_p_value") %>% dplyr::filter(!is.na(Adjusted_p_value)) # 导出CSV write.csv(p_df, "PairwiseWilcox.csv", row.names = FALSE)
方法2:用broom包一键整理结果
broom包的tidy()函数可以直接将统计检验对象标准化为DataFrame,步骤更简洁:
# 安装并加载broom(首次使用需安装) install.packages("broom") library(broom) # 整理检验结果 tidy_result <- tidy(table) # 导出CSV write.csv(tidy_result, "PairwiseWilcox.csv", row.names = FALSE)
说明
- 两种方法生成的长格式表格包含配对组名称和校正后p值,符合常规表格阅读习惯;若需要保留原始矩阵格式,直接导出
as.data.frame(table$p.value)即可。 - 注意过滤NA值(矩阵的三角空白部分),避免导出无效行。
内容的提问来源于stack exchange,提问作者Kristen Cyr
相关产品推荐
相关产品推荐

