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

如何修改survPresmooth包中control.presmooth的n.boot参数?

修改survPresmooth包中control.presmooth的n.boot参数的可行方法

你尝试修改参数时遇到的两个错误翻译如下:

  • 执行control.presmooth$n.boot <- c(1000, 200)时的报错:

类型为'closure'的对象不能被子集化

  • 执行trace(control.presmooth, edit = TRUE)时的错误:

错误于.makeTracedFunction(def, tracer, exit, at, print, doEdit):
trace()中的编辑只能修改函数体,不能修改参数或默认值

问题原因

control.presmooth是一个生成控制参数列表的函数(类型为closure),不是现成的列表对象,所以无法直接用$符号修改它的参数;而trace()工具仅支持编辑函数体,无法修改函数的默认参数值。

下面是两种可行的解决方法:

方法一:临时自定义控制参数列表

直接调用control.presmooth函数并指定新的n.boot值,生成自定义控制列表后,传递给survPresmooth的control参数即可:

# 生成包含自定义n.boot的控制参数列表
my_control <- control.presmooth(n.boot = c(1000, 200))
# 将自定义控制参数传入survPresmooth主函数
survPresmooth(你的其他必要参数, control = my_control)

方法二:永久修改函数默认参数

如果希望后续调用control.presmooth时默认使用新的n.boot值,可以用formals()函数修改该函数的默认参数:

# 修改control.presmooth的n.boot默认参数值
formals(control.presmooth)$n.boot <- c(1000, 200)

修改完成后,直接调用control.presmooth()时,n.boot会自动使用c(1000, 200)作为默认值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:05:01