如何在不计算call函数的前提下为cb.fit对象添加call条目?
为CoxBoost对象手动添加call条目是否符合预期?
你的操作完全符合预期,下面来具体拆解分析:
你的操作代码
cb.fit = CoxBoost( time=clin.mut$SurvMetastasis_Time, status=clin.mut$SurvMetastasis_Event, x=as.matrix(clin.mut[,-c(1,4,5)]), stepno=1000, penalty=100 ) cb.fit$call = call( "CoxBoost", time=clin.mut$SurvMetastasis_Time, status=clin.mut$SurvMetastasis_Event, x=as.matrix(clin.mut[ ,-c(1,4,5)]), stepno=1000, penalty=100 )
检查结果分析
你执行后得到的结果:
> class(cb.fit$call) [1] "call" > names(cb.fit$call) [1] "" "time" "status" "x" "stepno" "penalty"
- 类型验证通过:
class(cb.fit$call)返回"call",说明你成功给cb.fit添加了一个完全合法的call类型属性,这和R中绝大多数内置模型对象的call属性类型完全一致。 - 结构完全正常:
names(cb.fit$call)里第一个空字符串是R中call对象的固有特性——call对象的第一个元素是被调用的函数名(这里就是CoxBoost),它对应的名称字段就是空字符串,后续的元素才是各个命名参数的名称,这完全符合call对象的标准结构。
额外说明
你手动构造的call完整还原了当初构建模型时的所有参数,这意味着后续如果需要复现这个模型,直接执行eval(cb.fit$call)就能得到和cb.fit一致的模型结果,完美达到了添加call属性的核心目的。
内容的提问来源于stack exchange,提问作者Haiying
相关产品推荐
相关产品推荐

