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

如何在R中对数据框子集应用drm函数进行剂量反应建模?

解决剂量反应建模的批量处理问题

你的代码报错是因为lapply的用法错误:你直接把drm调用写进去,但没指定每个子集作为数据源,反而把整个data_split传给了drm的data参数,导致它找不到单个数据框里的response列。下面是两种简洁的解决方案:

方案1:用lapply实现

先确保加载drc包,然后用匿名函数接收每个子集数据框:

library(drc)

# 批量对每个子集建模
models <- lapply(data_split, function(sub_df) {
  drm(response ~ dose, data = sub_df, fct = LL.5())
})

方案2:用purrr::map实现(更简洁)

如果你习惯tidyverse风格,用map函数写法更短:

library(drc)
library(purrr)

# 批量建模
models <- map(data_split, ~ drm(response ~ dose, data = .x, fct = LL.5()))

注意事项

  • 确认每个子集数据框里都存在response和dose列,列名要完全匹配(大小写敏感)
  • split后的列表已经自带由sample和date组合的名称,你可以用names(models)查看,方便后续提取特定样本/日期的模型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:05:26