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

计算真实患病率:解决prevalence包truePrev函数向量输入报错问题

解决prevalence包truePrev函数批量计算真实患病率的问题

truePrev函数本身仅支持单个x和n值输入,直接传入长度>1的向量会触发错误——因为函数内部的条件判断逻辑没做向量兼容处理,就会出现你看到的the condition has length > 1报错。

要批量计算多组x和n对应的真实患病率,你可以用循环类函数逐个处理每组数据,以下是两种可行方法:

方法1:用基础R的mapply函数

mapply可以自动对应x和n向量的每一对元素,逐个调用truePrev:

library(prevalence)

# 定义输入的向量和参数
x_vec <- c(142, 149, 6)
n_vec <- c(742, 742, 742)
SE_val <- 0.90
SP_val <- 0.90

# 批量计算,返回列表格式的结果
batch_results <- mapply(function(x, n) {
  truePrev(x = x, n = n, SE = SE_val, SP = SP_val)
}, x = x_vec, n = n_vec, SIMPLIFY = FALSE)

# 查看每组结果
batch_results

方法2:用tidyverse风格的map2函数

如果你习惯tidyverse工具链,可以用purrr包的map2函数实现同样效果:

library(prevalence)
library(purrr)

x_vec <- c(142, 149, 6)
n_vec <- c(742, 742, 742)
SE_val <- 0.90
SP_val <- 0.90

# 批量计算
batch_results <- map2(x_vec, n_vec, ~truePrev(x = .x, n = .y, SE = SE_val, SP = SP_val))

# 如果需要把结果整理成数据框,可结合dplyr
library(dplyr)
results_df <- bind_rows(batch_results)
print(results_df)

两种方法都会返回每组x、n对应的真实患病率估计值及置信区间,你可以根据自己的编程习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:33:19