我正在使用pROC软件包,并且想使用for循环来计算多个ROC曲线图。我的变量是作为列包含在向量中的特定列名称,我希望pROC顺序读取该向量,并使用似乎接受文本/字符的“预测变量”字段中的字符串。但是,由于出现错误,我无法正确解析变量:
'predictor'参数应该是列的名称,可以选择加引号。
这是带有SAH数据集的示例代码:
ROCvector<- c("s100b","ndka")
for (i in seq_along(ROCvector)){
a<-ROCvector[i]
pROC_obj <- roc(data=aSAH, outcome, as.character(a))
#code for output/print#
}
我试图只调用“ a”并使用函数print()或get()而没有任何结果。当然,手动编写变量(带或不带引号)是可行的。关于在预测变量字段中应该使用的变量类型,我是否缺少某些内容?
通过data=aSAH
作为第一个参数传递,您将触发参数dplyr-style的非标准评估(NSE)。因此,您不能简单地在变量中传递列名。请注意与outcome
您传递的不带引号且看起来像变量的不一致(但不是)吗?幸运的是,dplyr中带有NSE的函数带有与标准评估等效的函数,其名称以结尾_
。pROC软件包遵循此约定。如果要使用列名进行编程,则通常应使用它们。
长话短说,您应该改用该roc_
函数,该函数接受字符作为列名(不要忘记引用"outcome"
):
pROC_obj <- roc_(data=aSAH, "outcome", as.character(a))
代码的惯用语是:
for (predictor in ROCvector) {
pROC_obj <- roc_(data=aSAH, "outcome", predictor)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句