2017-06-21 4 views
0

Ich habe eine Liste temp.Factors, die wie folgt aussieht.In R, möchte ich numerische Werte in einer Liste für Zeichenwerte in einem Vektor ersetzen

$`1` 
[1] 1 2 3 4 5 6 7 8 9 10 

$`2` 
[1] 11 12 13 14 15 16 17 18 19 20 

$`3` 
[1] 21 22 23 24 25 26 27 28 29 30 

$`4` 
[1] 31 32 33 34 35 36 37 38 39 40 

Mein Ziel ist es, die Werte in dieser Liste mit Werten aus dem folgenden Zeichenvektor genannt temp.names zu ersetzen:

[1] "C1" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "C10" "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" 
[20] "A10" "N1" "N2" "N3" "N4" "N5" "N6" "N7" "N8" "N9" "N10" "O1" "O2" "O3" "O4" "O5" "O6" "O7" "O8" 
[39] "O9" "O10" 

Das Endergebnis sollte wie folgt aussehen:

$`1` 
[1] C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 

$`2` 
[1] A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 

$`3` 
[1] N1 N2 N3 N4 N5 N6 N7 N8 N9 N0 

$`4` 
[1] O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 

Ich habe das Internet nach einer möglichen Lösung durchforstet und nichts kommt der Lösung nahe, die ich möchte. Ihre Vorschläge würden sehr geschätzt werden.

Vielen Dank!

+0

Sie versuchen, 'lapply können (temp.factors, Funktion (x) temp.names [ x]) ' – HubertL

+0

Das hat funktioniert! Danke, Hubert. Können Sie dies unten posten und ich werde dies als die Lösung markieren? – Josh

Antwort

2

Sie können lapply verwenden über die Liste iterieren:

lapply(temp.factors, function(x) temp.names[x]) 
2

Ein Fall für relist:

relist(temp.names, temp.factors) 
+0

Dies funktioniert nur, wenn die Nummern zusammenhängend sind – HubertL

+0

@HubertL - Ich dachte, es war nur ein direkter Ersatz, Vektor in Liste. Vielleicht kann OP klären. Wie auch immer, ich denke, Sie haben ihn abgedeckt, wenn es ein Index sein soll. – thelatemail

Verwandte Themen