命名向量

命名向量是一种不同于数值向量或逻辑向量的特定向量类型。它指的是该向量中的每
一个元素都有相应的名称。我们可以在创建向量的同时对其命名:
x <- c(a = 1, b = 2, c = 3)
x
## a b c
## 1 2 3
这样就可以通过单值字符向量来访问其中的元素:
x["a"]
## a
## 1
也可以通过一个字符向量来获取多个元素:
x[c("a", "c")]
## a c
## 1 3
如果字符向量中含有重复元素,则会选出相应的重复元素。
x[c("a", "a", "c")]
## a a c
## 1 1 3
除此之外,其余所有的能够用于向量中的操作也适用于命名向量。我们可以通过
names( )获取向量中的元素名称:
names(x)
## [1] "a" "b" "c"
向量中的名称不是固定的,可以通过对向量赋予不同的字符向量来更改元素名称:
names(x) <- c("x", "y", "z")
x["z"]
## z
## 3
当不需要元素名称时,也可以用 NULL 来移除原有的名称。NULL 表示一个未定义值的
特殊对象:
names(x) <- NULL
x
## [1] 1 2 3
你可能会比较好奇,如果访问一个不存在的名称时会发生什么呢?我们对原始的 x 进
行测试:
x <- c(a = 1, b = 2, c = 3)
x["d"]
## <NA>
## NA
直觉上,访问一个不存在的元素应该会报错,但结果却返回一个无名的缺失值:
names(x["d"])
## [1] NA
如果你提供的字符向量中,只有部分名称存在,其余不存在时,返回的向量长度与选
择向量(该字符向量)保持一致:
x[c("a", "d")]
## a <NA>
## 1 NA

posted @ 2019-01-22 09:53  NAVYSUMMER  阅读(321)  评论(0编辑  收藏  举报
交流群 编程书籍