当name为NA时,获取命名字符向量元素的值

时间:2017-10-17 15:21:28

标签: r vector

假设我有一个像这样的命名字符向量:

> class(colors)
[1] "character"

> colors
       9074        8778        8577        7148        <NA>        3310     0050169        8893       50156        9008        9778 
"#FF0000FF" "#FF7600FF" "#FFEB00FF" "#9DFF00FF" "#27FF00FF" "#00FF4EFF" "#00FFC4FF" "#00C4FFFF" "#004EFFFF" "#2700FFFF" "#9D00FFFF" 
       5295     0080162 
"#FF00EBFF" "#FF0076FF" 

其中名称是ID,值是颜色。如果我给colors向量一个ID,我会得到相应的颜色。

> colors["9074"]
       9074 
"#FF0000FF"

但是对于名称为<NA>的一种情况,我不知道如何返回相应的颜色。简单地提供NA不起作用

> colors[NA]
<NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> 
  NA   NA   NA   NA   NA   NA   NA   NA   NA   NA   NA   NA   NA 

> colors["NA"]
<NA> 
  NA 

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

由于colors已经是base R函数的名称,我将创建一个向量x

x <- 1:5
names(x) <- c("A", "B", NA, "D", "E")

x[is.na(names(x))]
#<NA> 
#   3

答案 1 :(得分:0)

这应该可以,但如果多个颜色没有名称,则会返回多个值。

colors[which(is.na(names(colors)))]