将命名向量转换为列表但保留向量名称

时间:2017-10-13 02:47:52

标签: r list vector names

我有一个我想要转换为列表的命名向量,如下所示:

a = 1:10
names(a) = letters[1:10]
as.list(a)
$a
[1] 1
$b
[1] 2
$c
[1] 3

这里,每个向量的名称现在是列表的名称,但是我需要列表中的向量来保留它们的名称,如下所示:

as.list(a)
$a
a
1
$b
b
2
$c
c
3

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用split()

split(a, names(a))

答案 1 :(得分:0)

继续使用as.list后的一个选项是使用names

设置原始vector的相应Map元素的名称
Map(setNames, as.list(a), names(a))
#$a
#a 
#1 

#$b
#b 
#2 

#$c
#c 
#3 

#$d
#d 
#4 

#$e
#e 
#5 

#$f
#f 
#6 

#$g
#g 
#7 

#$h
#h 
#8 

#$i
#i 
#9 

#$j
# j 
#10