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

R语言如何逐行对汇总数据批量运行poisson.exact检验

逐行运行Poisson精确检验输出完整结果方案

你之前的代码只能输出单个率值,核心问题是map2_dbl仅支持返回长度为1的数值型向量,无法保留检验返回的多列结果。用列表列存储逐行检验的完整输出,再批量展开即可得到和单行运行完全一致的所有字段。

  • 前置依赖:运行前确保已加载所需包,其中poisson.exact来自exactci包,若使用R基础包自带的poisson.test逻辑完全通用
library(tibble)
library(dplyr)
library(tidyr)
library(broom)
# 若使用poisson.exact则加载,用基础poisson.test可跳过
library(exactci)
  • 完整实现代码
# 测试数据集(替换为你从csv读入的数据即可)
results <- tribble(
  ~group, ~a, ~b, ~c, ~d,
  1,    302,    70137,  180541.2398,    3158205.224,
  2,    3673,   66766,  1298973.019,    2039773.445,
  3,    16142,  54297,  958777.9383,    2379968.526,
  4,    50322,  20117,  900454.267, 2438292.197
)

final_result <- results %>%
  mutate(
    # 按行传入a、b、c、d四个参数,将整理后的检验结果存入列表列
    test_output = pmap(
      list(a, b, c, d),
      ~ tidy(poisson.exact(c(..1, ..2), c(..3, ..4)))
      # 用基础包poisson.test就替换为下面这行
      # ~ tidy(poisson.test(c(..1, ..2), c(..3, ..4)))
    )
  ) %>%
  # 展开列表列,自动拼接所有检验结果字段
  unnest(test_output)
  • 结果说明
    运行后输出的数据集会保留原表所有列(group、a、b、c、d),同时追加检验返回的全部字段:包括两组率的估计值、率比、p值、置信区间上下限、检验方法、备择假设等,和你单行运行do函数得到的输出字段完全一致。如果需要调整检验参数(比如置信度、单侧/双侧检验),直接在poisson.exact/poisson.test调用中传入对应参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:01:05