Wie kann ich ein Objekt in einen Variablennamen laden, den ich aus einer R-Datendatei spezifiziere?
Beim speichern einer Variablen in einer R-Datendatei mit save
es gespeichert ist, unter welcher Bezeichnung es hatte in der Sitzung, die Sie gespeichert. Wenn ich später gehen, um es zu laden von einer anderen Sitzung, es wird geladen, mit dem gleichen Namen, die das laden von script kann unmöglich wissen. Diesen Namen überschreiben Sie eine vorhandene variable mit dem gleichen Namen in der be-Sitzung. Gibt es einen Weg, um sicher laden Sie ein Objekt aus einer Datendatei in eine angegebene variable name ohne Risiko, Stress für die vorhandenen Variablen?
Beispiel:
Speichern session:
x = 5
save(x, file="x.Rda")
Be-Sitzung:
x = 7
load("x.Rda")
print(x) # This will print 5. Oops.
Wie ich das will:
x = 7
y = load_object_from_file("x.Rda")
print(x) # should print 7
print(y) # should print 5
InformationsquelleAutor der Frage Ryan Thompson | 2011-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nur sparen ein einzelnes Objekt ist, verwenden Sie nicht einen
.Rdata
- Datei, verwenden Sie eine.RDS
Datei:InformationsquelleAutor der Antwort hadley
Können Sie erstellen Sie eine neue Umgebung, laden Sie das .rda-Datei in dieser Umgebung, und rufen Sie das Objekt aus. Dies gilt jedoch verhängen einige Einschränkungen: entweder Sie wissen, was der ursprüngliche name für Ihr Objekt ist, oder es ist nur ein Objekt in der Datei gespeichert.
Diese Funktion gibt ein Objekt zurück, beladen von einem geliefert .rda-Datei. Wenn es mehr als ein Objekt in der Datei mit einem beliebigen zurückgegeben.
InformationsquelleAutor der Antwort Hong Ooi
Benutze ich folgende:
InformationsquelleAutor der Antwort ricardo
Könnte man auch versuchen, so etwas wie:
InformationsquelleAutor der Antwort by0
Falls jemand sucht, dies mit einer einfachen Quellcode-Datei, anstatt eine gespeicherte Rdata/RDS/Rda-Datei, die Lösung ist sehr ähnlich zu der von @Ooi Hong
Drucke:
Und in der separaten Quelldatei TestSourceFile.R
Wieder, diese Lösung funktioniert nur, wenn es genau eine Datei, wenn es mehr werden, dann wird es einfach nur wieder einer von Ihnen (wahrscheinlich die erste, aber das ist nicht garantiert).
InformationsquelleAutor der Antwort user2711915