【问题标题】:convert named vector to list but keep vector names将命名向量转换为列表但保留向量名称
【发布时间】:2018-03-25 02:35:38
【问题描述】:

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

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

有什么想法吗?谢谢!

【问题讨论】:

  • 我的问题很不一样。该问题中根本没有提到下面发布的解决方案(简单且有效)。
  • 您是否检查了该问题中第一个被接受的解决方案?您可以轻松地将其调整为您对此问题的要求。
  • 我重新打开了这个问题。我不相信这是链接问题的重复,5 个重复的选民中有 4 个不是 R 用户。您可以从本网站上的其他答案中得出答案,但这并不意味着这些问题彼此重复。如果您可以让 5 个 R 用户同意该副本,那么我可能会改变主意。

标签: r list vector names


【解决方案1】:

继续使用as.list 之后的一个选项是将元素的名称设置为与原始vector 对应的namesMap

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 

【讨论】:

    【解决方案2】:

    您可以使用split()

    split(a, names(a))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 2016-10-23
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多