R In.na(x):is.na()应用于类型' NULL'的非(列表或向量)。

时间:2018-01-30 12:46:34

标签: r dataframe

我正在尝试在我的数据集上运行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'

这应该不是一个难题,可能是我的数据框格式错误,但我无法找到解决方法。

1 个答案:

答案 0 :(得分:1)

如果您阅读sensitivityhelp("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