weixin_52401784 2024-10-19 11:09 采纳率: 100%
浏览 2
已采纳

关于R语言运行分区生存模型中的问题!

问题遇到的现象和发生背景

R语言运行药物经济学分区生存模型

> n_samples <- 300
> surv_input_data <- expand(hesim_dat, by=c("strategies", "patients"))  
> survmods <- create_PsmCurves(psfit_wei, n=n_samples, input_data=surv_input_data,  
+                              uncertainty="bootstrap", est_data=surv_est_data)  
Error in create_input_mats_flexsurvreg_X(object[[i]], input_data, ...) : 
  Value of covariate "strategy" not supplied in "input_data"

操作环境、软件版本等信息

Rstudio 2024,

尝试过的解决方法

更换"strategy命名,无法解决这个问题

我想要达到的结果

解决报错问题,使软件可以继续运行下去

  • 写回答

12条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2024-10-19 11:10
    关注

    🕖上午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:窗外日光弹指过,席间花影坐前移。

    从你提供的错误信息来看,create_PsmCurves 函数在尝试创建分区生存模型曲线时遇到了问题,因为它期望输入数据中包含一个名为 "strategy" 的协变量(covariate),但实际并没有找到。这通常意味着你的 surv_input_data 数据框没有正确地包含这个变量。

    分析问题

    1. 数据结构:确保 surv_input_data 包含了所有需要的变量,特别是 "strategy" 变量。
    2. 数据合并:如果 hesim_dat 中包含了 "strategy" 变量,那么在使用 expand 函数时,可能没有正确地将这个变量包含进去。
    3. 函数参数:检查 create_PsmCurves 函数的文档,确认是否需要特定的变量名。

    解决方案

    1. 确保数据中包含 "strategy" 变量

    首先,确认 hesim_dat 数据框中确实包含了 "strategy" 变量:

    print(names(hesim_dat))
    

    如果 "strategy" 变量存在,那么在 expand 函数调用时应该包含它:

    surv_input_data <- expand(hesim_dat, by = c("strategies", "patients"))
    

    确保 by 参数中的 "strategies" 对应于 hesim_dat 中的实际变量名。

    2. 使用正确的变量名

    如果你确定 "strategy" 是你需要的变量名,那么请确保在 expand 函数调用时使用正确的变量名。例如,假设 hesim_dat 中的变量名为 "strategies",则:

    surv_input_data <- expand(hesim_dat, by = c("strategies", "patients"))
    

    3. 调试和检查

    如果仍然有问题,可以先输出 surv_input_data 来查看其内容:

    print(head(surv_input_data))
    

    确保其中包含 "strategy" 变量。

    4. 完整示例代码

    以下是一个完整的示例代码,假设 hesim_datsurv_est_data 都已定义,并且 hesim_dat 包含 "strategies" 和 "patients" 变量:

    # 假设这些数据已经定义
    # hesim_dat <- ...
    # surv_est_data <- ...
    
    # 扩展数据
    surv_input_data <- expand(hesim_dat, by = c("strategies", "patients"))
    
    # 创建分区生存模型曲线
    n_samples <- 300
    survmods <- create_PsmCurves(
      psfit_wei,
      n = n_samples,
      input_data = surv_input_data,
      uncertainty = "bootstrap",
      est_data = surv_est_data
    )
    

    总结

    通过确保 surv_input_data 包含所有必要的变量,特别是 "strategy" 变量,你应该能够解决这个错误并继续运行你的分区生存模型。如果问题依然存在,请进一步检查数据的结构和变量名是否匹配 create_PsmCurves 函数的要求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

问题事件

  • 已采纳回答 今天
  • 创建了问题 今天

悬赏问题

  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 用大厂网站防红自己网站
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?