You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将Fisher检验的比值比列表转为数值向量并合并入数据框

解决方案

第一步:提取比值比的纯数值

你的fisher_or是列表,每个元素是带"odds ratio"命名的单元素数值向量,用下面几种方法都能快速提取纯数值:

  1. unlist 极简法
    直接解包列表并转成数值,NA值会被正确保留:
fisher_or_numeric <- as.numeric(unlist(fisher_or))
  1. sapply 稳妥法
    如果需要更明确地处理NA(避免意外报错),用sapply遍历每个列表元素:
fisher_or_numeric <- sapply(fisher_or, function(x) {
  if (!is.na(x)) x else NA_real_
})

第二步:合并成edge_table

拿到纯数值的OR向量后,直接和ids_df、fisher_pvalues合并即可:

基础R写法

edge_table <- cbind(ids_df, fisher_odds_ratio = fisher_or_numeric, fisher_pvalue = fisher_pvalues)

Tidyverse写法(若使用dplyr)

library(dplyr)
edge_table <- ids_df %>%
  mutate(
    fisher_odds_ratio = fisher_or_numeric,
    fisher_pvalue = fisher_pvalues
  )

这样得到的edge_table就是包含原ids_df数据、比值比和p值的完整数据框。

内容的提问来源于stack exchange,提问作者Aryh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:20:38