如果其中一个名称是<na>,则从命名表对象中选择值

时间:2018-01-25 17:52:10

标签: r

矢量

使用下面的代码我生成了我的table对象:

vec <- c(rep(1, 10),
         rep(5, 5),
         4,
         3,
         rep(NA, 3))

table(vec, useNA = "always") -> res

选择值

以下对象名称:

>> names(res)
[1] "1" "3" "4" "5" NA 

我选择了所需的值:

>> res["3"]
3 
1 
>> res["5"]
5 
5 

问题

这不适用于上一个 <NA> 列:

<NA> 
  NA 
>> res["NA"]
<NA> 
  NA 
>> res[`NA`]
Error in NextMethod() : object 'NA' not found

旁注

我可以使用列位置获得正确的结果:

>> res[length(res)]
<NA> 
   3 

但我对此不感兴趣我想通过名称调用<NA>列,怎么做?

1 个答案:

答案 0 :(得分:1)

名称不可用(NA)。尝试将其命名为“NA”。

names(res)[is.na(names(res))]<-"NA"
> res[["NA"]]
[1] 3

res[is.na(names(res))]