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

4

我有一个命名向量,想将其转换为列表,方法如下:

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
我的问题非常不同。下面发布的解决方案(简单且有效)在那个问题中根本没有提到过。 - Haloom
你有检查过那个问题的第一个并被接受的解决方案吗?你可以很容易地将它适应到这个问题中。 - Ronak Shah
1
我重新打开了这个问题。我不认为它是与链接问题重复的,而且5个重复投票者中有4个不是R用户。你可以从本站上的其他答案中得出答案,但这并不意味着这些问题互相重复。如果你能让5个R用户同意这个重复问题,那我可能会改变我的想法。 - Rich Scriven
2个回答

5
你可以使用split()方法。
split(a, names(a))

0

在使用as.list后的一个选项是使用Map将元素的名称设置为原始vector的相应names

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 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接