我正在尝试在我的数据集上运行AUC包,但它给了我错误的信息: 警告信息: 1:在is.na(x)中:is.na()应用于类型为' NULL'
的非(列表或向量)我在这里复制了我的数据和代码:
> pred[820:840,]
prediction labels
id1300 0.03270514 1
id9049 -0.21458398 0
id3008 0.10395611 0
id956 -0.12109372 0
id6579 -0.05236555 0
id6428 0.05997380 0
id2286 -0.14315984 0
id6170 -0.09689733 0
id3553 -0.22782475 0
id8639 0.20416261 1
id4456 0.12514264 0
id467 -0.05162327 0
id5029 -0.07452525 0
id1421 -0.10254890 0
id4880 -0.12759426 0
id5140 -0.08773456 0
id580 -0.30139796 0
id3332 0.07563819 0
id7930 0.06709688 0
id1319 -0.13681023 0
id7498 -0.14081864 0
> auc(sensitivity(pred$prediction,pred$labels))
[1] NA
Warning messages:
1: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
2: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
3: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
这应该不是一个难题,可能是我的数据框格式错误,但我无法找到解决方法。
答案 0 :(得分:1)
如果您阅读sensitivity
(help("sensitivity", package = "AUC"
)的帮助,则可以看到labels
参数需要'观察到的类标签(响应)的因子,只允许值{0,1}'。
修改sensitivity
调用以将pred$labels
转换为系数会删除警告并导致返回一个数字。
library(AUC)
#> AUC 0.3.0
#> Type AUCNews() to see the change log and ?AUC to get an overview.
pred <- read.table(text = "
prediction labels
id1300 0.03270514 1
id9049 -0.21458398 0
id3008 0.10395611 0
id956 -0.12109372 0
id6579 -0.05236555 0
id6428 0.05997380 0
id2286 -0.14315984 0
id6170 -0.09689733 0
id3553 -0.22782475 0
id8639 0.20416261 1
id4456 0.12514264 0
id467 -0.05162327 0
id5029 -0.07452525 0
id1421 -0.10254890 0
id4880 -0.12759426 0
id5140 -0.08773456 0
id580 -0.30139796 0
id3332 0.07563819 0
id7930 0.06709688 0
id1319 -0.13681023 0
id7498 -0.14081864 0")
auc(sensitivity(pred$prediction, factor(pred$labels)))
#> [1] 0.8690476