Ich frage mich, wie einfach es ist, ein Objekt in R zu speichern, indem Sie eine Variable objectName
mit dem Namen des Objekts verwenden, das gespeichert werden soll. Ich möchte das zum einfachen Speichern von Objekten, mit ihrem Namen im Dateinamen.
Ich habe versucht, get
zu verwenden, aber ich habe es nicht geschafft, das Objekt mit dem ursprünglichen Objektnamen zu speichern.
Beispiel:
Wenn ich das Objekt "temp" habe, das ich im Verzeichnis "dataDir" speichern möchte. Ich gebe den Namen des Objekts in die Variable "objectName" ein.
Versuch 1:
%Vor% Dies hat nicht funktioniert, weil R versucht, ein Objekt namens get(objectName)
anstelle des Ergebnisses dieses Aufrufs zu speichern. Also habe ich folgendes versucht:
Versuch 2:
%Vor%Das hat offensichtlich nicht funktioniert, weil R das Objekt mit dem Namen "object" und nicht mit dem Namen "temp" speichert. Nach dem Laden habe ich eine Kopie von "object" anstelle von "temp". (Ja, mit den gleichen Inhalten ... aber das ist nicht was ich will :)). Also dachte ich, es sollte etwas mit Zeigern sein. So versuchte folgendes:
Versuch 3:
%Vor%Gleiches Ergebnis wie Versuch 2. Aber ich bin mir nicht sicher, ob ich das mache, was ich denke.
Was ist die Lösung dafür?
Versuchen Sie save(list=objectName, file=paste(objectName, '.Rdata', sep='') )
.
Der Schlüssel ist, dass das list
Argument zu save
eine Liste von Zeichenketten nimmt, die die Namen der zu speichernden Objekte sind (und nicht die tatsächlichen Objekte, die durch ...
übergeben wurden).
Ich fand deine Beispiele schwer zu verstehen, aber ich kann mir zwei Möglichkeiten vorstellen, was du willst. Entweder möchten Sie den Dateinamen als objectName.RData
oder temp.RData
speichern. Hier ist, wie Sie beide tun:
Alle Ihre Versuche geben einen Fehler zurück, weil Sie get
falsch aufgerufen haben. Es hätte get('objectName')
sein sollen, aber wenn du darüber nachdenkst, würde dir das genau das gleiche wie objectName
bringen.