【发布时间】:2020-08-11 19:12:42
【问题描述】:
我正在编写一个函数来迭代循环遍历字符向量的每个元素,做一些事情,并将每个输出附加到适当的列表中。在循环中,我正在做的一件事是使用我的字符列表中的第 i 个元素作为它的参数。但我收到以下错误:
Error in Predict(model_fit,vars[i]) : predictor(s) not in model: c("[","vars","i")
在对其进行了一些研究之后,我尝试创建一个数据承诺,以便通过修改我的函数来引用尚未评估的 vars 向量的第 i 个元素:Predict(model_fit,substitute(vars[i],env = as.list(vars)) 输出关于预测器的类似错误消息(s) 不在模型中。关于如何正确编码以便Predict() 函数准确引用我想要的向量元素的任何线索?
这是一个可重现的例子:
data(iris)
library(rms)
iris$binomial_species <- ifelse(iris$Species=='setosa',1,0)
vars <- colnames(iris)
dd <- datadist(iris)
options(datadist='dd')
for (i in seq(length(vars))) {
fit <- lrm(binomial_species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,data = iris)
Predict(fit,substitute(vars[i],env=as.list(vars))
}
【问题讨论】:
标签: r