命名向量可以通过多种方式创建。与c:
xc <- c('a' = 5, 'b' = 6, 'c' = 7, 'd' = 8)
结果是:
> xc a b c d 5 6 7 8
与list:
xl <- list('a' = 5, 'b' = 6, 'c' = 7, 'd' = 8)
结果是:
> xl $a [1] 5 $b [1] 6 $c [1] 7 $d [1] 8
使用此setNames功能,可以使用两个相同长度的向量来创建命名向量:
x <- 5:8 y <- letters[1:4] xy <- setNames(x, y)
这将产生一个命名的整数向量:
> xy a b c d 5 6 7 8
可以看出,这给出了与该c方法相同的结果。
您也可以使用该names函数获得相同的结果:
xy <- 5:8 names(xy) <- letters[1:4]
有了这样的向量,还可以按名称选择元素:
> xy["c"] c 7
此功能使得可以使用这样的命名向量作为查找向量/表,以将值与数据帧中另一个向量或列的值进行匹配。考虑以下数据框:
mydf <- data.frame(let = c('c','a','b','d')) > mydf let 1 c 2 a 3 b 4 d
假设您要在mydf数据num框中创建一个新变量,并使用行中的正确值调用该变量xy。使用该match功能xy可以从中选择适当的值:
mydf$num <- xy[match(mydf$let, names(xy))]
结果是:
> mydf let num 1 c 7 2 a 5 3 b 6 4 d 8