Ich frage mich, ob es eine einfache Möglichkeit gibt, mit einer for-Schleife eine Liste von Variablen zu erstellen und ihren Wert anzugeben.
for(i in 1:3)
{
noquote(paste("a",i,sep=""))=i
}
In dem obigen Code, ich versuche zu erstellen a1
, a2
, a3
, die assign zu den Werten von 1, 2, 3. Allerdings gibt R eine Fehlermeldung. Danke für Ihre Hilfe.
names
Parameter festzulegen und sie später entweder nur zu verwendenattach
oder in eine Umgebung mitlist2env
undeval
innerhalb der Liste zu konvertieren . Ohne Schleifen, Parsen oder andere hässliche Dinge.list2env
ist eine relativ neue Funktion. Und dennoch werden die Variablen in einer bestimmten Umgebung erzeugt, wenn das OP die Variablen in der obersten Umgebung abrufen möchte. So bleibt die Hässlichkeit immer noch :)Antworten:
Sie suchen
assign()
.gibt
und
Aktualisieren
Ich bin damit einverstanden, dass die Verwendung von Schleifen (sehr oft) einen schlechten R-Codierungsstil darstellt (siehe obige Diskussion). Mit
list2env()
(danke an @mbq für die Erwähnung) ist dies eine weitere Lösung für die Frage von @Han Lin Shang:quelle
Wenn die Werte in Vektor sind, ist die Schleife nicht erforderlich:
Als Randnotiz ist dies der Grund, warum ich R. liebe.
quelle
library(fortunes)
fortune(106)
parse
nach dem Lesen von R-Hilfeseiten. Ich stimme zu, dass es manchmal ein Overkill ist, zum Beispiel imformula
Management, aber ich fand es sehr nützlich. Beachten Sie, dass ich die im Glück vorgeschlagene Frage nicht überdenken kann, da ich sie nicht gestellt habe.