R语言:如何批量提取泊松检验的置信限并生成表格
批量计算泊松计数的置信区间
基础R实现方法
先定义一个能从poisson.test结果中提取置信限的函数:
get_poisson_ci <- function(x, conf_level = 0.95) { test_result <- poisson.test(x, conf.level = conf_level) ci <- test_result$conf.int return(data.frame(LCI = ci[1], UCI = ci[2])) }
接着对数据框的count列批量应用该函数,再将结果合并到原数据:
region <- c("A","B") count <- c(53,36) data <- data.frame(region,count) # 批量计算置信区间并合并 ci_results <- do.call(rbind, lapply(data$count, get_poisson_ci)) final_data <- cbind(data, ci_results) # 查看最终结果 final_data
运行后会得到包含地区、计数、LCI、UCI的表格:
region count LCI UCI 1 A 53 39.74384 69.29571 2 B 36 25.71768 50.07068
tidyverse(dplyr)实现方法
如果习惯使用tidyverse工具链,代码会更简洁直观:
library(dplyr) data %>% rowwise() %>% mutate( ci = list(poisson.test(count, conf.level = 0.95)$conf.int), LCI = ci[[1]][1], UCI = ci[[1]][2] ) %>% select(-ci) # 移除临时生成的ci列
为什么apply()会失败?
apply()会自动将数据框转换为矩阵处理,而poisson.test需要单个数值作为输入,矩阵元素的处理逻辑容易导致匹配错误。改用针对向量的lapply()或针对数据框行的rowwise(),能更精准地处理每行的计数数据。
内容的提问来源于stack exchange,提问作者JamesW
相关产品推荐
相关产品推荐

