调用矢量或列表的名称

时间:2017-04-09 01:28:30

标签: r get

我有一个名为“vec”的矢量。我将元素从“a”标记为“m”

vec <- c(1,1,1,2,2,2,2,2,2,4,4,4,4)
names(vec) <- c("a","b","c","d","e","f","g","h","i","j","k","l","m")

然后我根据序列拆分vec。

split_vec <- split(vec, vec)

现在我打字的时候 Spec_vec$"1"我得到了第一个列表。

而不是将特定名称键入为“1”。我想得到价值观 比如

spec_vec$vec[1] 但是上面的功能不起作用。有办法实现吗?

1 个答案:

答案 0 :(得分:2)

你可以做到

split_vec[[as.character(vec[1])]]
# a b c 
# 1 1 1 

请注意,您需要as.character,因为只有来自vec[i]的数字值会为split_vec[[vec[10]]]之类的调用提供不正确的结果,而您会期望第三个元素。

split_vec[[vec[10]]]
# Error in split_vec[[vec[10]]] : subscript out of bounds

split_vec[[as.character(vec[10])]]
# j k l m 
# 4 4 4 4 

但总的来说,最好避免使用以数字开头的名字,因为很明显,它很尴尬,可能会造成麻烦。