我有一个名为“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]
但是上面的功能不起作用。有办法实现吗?
答案 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
但总的来说,最好避免使用以数字开头的名字,因为很明显,它很尴尬,可能会造成麻烦。