r - do.call 错误,提供的元素多于要替换的元素(用 rlang::invoke 修复)[R]
问题描述
将参数列表(仅用于简化参数列表)传递给do.call
...时出现一个奇怪的错误,可以通过使用rlang::invoke
来解决,但我想了解这里发生了什么。谢谢。
> mydata <- source("https://pastebin.com/raw/bL8ZHvbt")$value
f <- as.formula(paste0("Surv(OS, Death) ~ ", paste(colnames(mydata)[-c(7:8)], collapse = " + ")))
> SurvBoost::boosting_core(formula = f, data = mydata, rate = 0.1)
$call
SurvBoost::boosting_core(formula = f, data = mydata, rate = 0.1)
$coefficients
Double_positive_CD4p_CD8dim TCD4p_CM_CD127low_PD1n TCD4p_CM_CD127low_PD1p TCD4p_CM_CD127p_CD25p_PD1n TCD4p_CM_CD127p_PD1n
0.15576408 -0.03984465 -0.22904226 -0.03556506 -0.15901050
TCD4p_EM_CD127low_PD1n
0.04126120
> do.call(SurvBoost::boosting_core, c(list(formula = f, data = as.data.frame(mydata)), list(rate = 0.1)))
Error in names(output)[[1]] <- data_name :
more elements supplied than there are to replace
> rlang::invoke(SurvBoost::boosting_core, c(list(formula = f, data = as.data.frame(mydata)), list(rate = 0.1)))
$call
.fn(formula = `1`, data = `2`, rate = `3`)
$coefficients
Double_positive_CD4p_CD8dim TCD4p_CM_CD127low_PD1n TCD4p_CM_CD127low_PD1p TCD4p_CM_CD127p_CD25p_PD1n TCD4p_CM_CD127p_PD1n
0.15576408 -0.03984465 -0.22904226 -0.03556506 -0.15901050
TCD4p_EM_CD127low_PD1n
0.04126120
解决方案
推荐阅读
- java - 批量更新发生时处理锁情况 C3po 和 oracle
- javascript - 我应该在 React.js 函数组件中的哪里进行 AJAX 和 API 调用?
- sql - 生成插入脚本以从 select 语句中恢复表
- regex - 根据大小写拆分字符串并大写字母
- python - 结合相邻的 SequenceMatcher 匹配
- parsing - 解析网络数据
- html - 有没有办法从外部应用程序发送信息以存储在基于 Web 的数据库(例如 sql)中?
- javascript - Redux Store 不会使用 firebase 实时数据库上创建的数据更新状态
- ruby-on-rails - 关于类变量、实例变量等空间的指南
- android - 寻找在 Android 中以 Single Activity App 方法实现 SearchView 的想法