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

R语言group_by调用自定义jackknife_CI函数提示变量不存在如何解决

报错原因

你自定义的jackknife_CI是普通R函数,不支持tidyverse的非标准评估规则,无法直接识别分组数据框内的列名,所以会提示找不到len_x对象。

解决方案

将分组后的自定义函数调用改为适配tidyverse语法的形式即可,以下是可直接运行的修正代码:

library(dplyr)

# 优化数据集合并步骤,避免cbind导致的匹配错误
df <- inner_join(df1, df2, by = "dose")

# 分组计算置信区间
jack_CI <- df %>% 
  group_by(dose) %>% 
  group_modify(~ tibble(
    ci_lower = jackknife_CI(.x$len_x, .x$len_y)[1],
    ci_upper = jackknife_CI(.x$len_x, .x$len_y)[2]
  ))

其中.x代表每个dose分组对应的子数据框,用$运算符直接提取对应列传入自定义函数,即可解决找不到对象的问题。

如果你更习惯用summarize语法,也可以用cur_data()提取当前分组的数据集:

jack_CI <- df %>% 
  group_by(dose) %>% 
  summarize(
    ci_lower = jackknife_CI(cur_data()$len_x, cur_data()$len_y)[1],
    ci_upper = jackknife_CI(cur_data()$len_x, cur_data()$len_y)[2]
  )

内容的提问来源于stack exchange,提问作者damned-to-suffer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:48:03