首页 > 解决方案 > 从命名列表中选择一列

问题描述

我不确定我是否理解我正在使用的变量类型。这是二元分类器的结果:

> mod_binary$predictions %>% glimpse()
 num [1:10000, 1:2] 0.989 0.904 0.99 0.989 0.989 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:2] "FALSE" "TRUE"
> mod_binary$predictions %>% head()
         FALSE       TRUE
[1,] 0.9894592 0.01054078
[2,] 0.9044349 0.09556509
[3,] 0.9898756 0.01012441
[4,] 0.9888804 0.01111959
[5,] 0.9890123 0.01098766
[6,] 0.9641537 0.03584634

这个变量类型叫什么?一个列表?有名的名单?命名向量?

我想检索 TRUE 预测的向量。试过:

> mod_binary$predictions$TRUE
Error: unexpected numeric constant in "mod_binary$predictions$TRUE"

> mod_binary$predictions[["TRUE"]]
Error in mod_binary$predictions[["TRUE"]] : subscript out of bounds

> mod_binary$predictions[[1]]
[1] 0.9894592

最后一个返回了一个观察结果,实际上是错误的。这是错误的预测(参见head()上面的调用)

我怎样才能得到 TRUE 的预测概率向量?

标签: r

解决方案


它看起来像是matrix来自 中显示的属性glimpse以及数据的打印格式,尤其是行名 ( [1,])。因此,它$不适用于提取。

根据?Extract

对于原子向量、矩阵/数组和递归(类似列表,请参阅 is.recursive)对象,默认方法的工作方式略有不同。$ 仅对递归对象有效,并且仅在下面有关递归对象的部分中讨论。

mod_binary$predictions[, "TRUE"]

推荐阅读