2017-10-13 14 views
2

J'ai un vecteur nommé que je veux convertir à une liste, en tant que telle:converti du nom de vecteur à la liste, mais garder les noms des vecteurs

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

Ici, les noms de chaque vecteur est maintenant le nom de la liste , mais j'ai besoin des vecteurs dans la liste pour garder leurs noms, comme ceci:

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

Des idées? Merci!

+2

Ma question est très différente. Les solutions postées ci-dessous (qui sont simples et travaillées) n'étaient pas du tout mentionnées dans cette question. – Haloom

+0

Avez-vous vérifié la première solution acceptée dans cette question? Vous pouvez facilement l'adapter à vos besoins pour cette question. –

+0

J'ai rouvert cette question. Je ne crois pas que ce soit une copie de la question liée, et 4 des 5 électeurs en double n'étaient pas des utilisateurs de R. Vous pouvez tirer des réponses d'autres réponses partout sur ce site, mais cela ne signifie pas que les questions sont des doublons les uns des autres. Si vous pouvez faire en sorte que les utilisateurs de 5 R soient d'accord avec cette copie, je pourrais changer d'avis. –

Répondre

3

Vous pouvez utiliser split().

split(a, names(a)) 
0

Une option après aller de l'avant avec as.list est de l'ensemble des noms des éléments avec le correspondant names de vector d'origine avec 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