Ich möchte eine Liste in eine Textdatei schreiben und dabei die Namen beibehalten.
Dies ist vergleichbar mit R: Liste in eine Textdatei drucken aber mit Namen, die ich auch ausdrucken möchte, am Anfang jeder Zeile:
%Vor%Irgendwelche Ideen?
Vielen Dank.
Die Funktion cat
wird auf ein Gerät (standardmäßig Konsole) drucken und keine der üblichen Anmerkungen hinzufügen, aber sie kann keine Liste als Argument akzeptieren, also muss alles ein atomarer Vektor sein. Mit deparse( substitute())
gambit können Namen von Listen wiederhergestellt werden, die an eine Funktion übergeben wurden. Wenn Sie names(x)
innerhalb der Funktion verwenden, kann der Name des ursprünglichen Arguments nicht wiederhergestellt werden.
Diese Version würde eine Datei ausgeben (und Sie könnten "\ t" ersetzen, wenn Sie Tabulatoren zwischen Namen und Werten haben wollten
%Vor% Wenn Sie die Liste für die zukünftige Verwendung in R speichern möchten, berücksichtigen Sie das Paket rlist
.
setzen:
%Vor%Dann können Sie die Liste einschließlich Namen wiederherstellen mit:
%Vor% ". rds" gibt keine Textdatei, ist aber vollständig wiederherstellbar. ".yaml" gibt eine Textdatei, aber einige Datenstrukturen gehen beim erneuten Laden verloren. ".json" gibt fast das Beste von beiden, obwohl die Textdatei möglicherweise nicht so lesbar ist und verschachtelte Listenstrukturen vereinfacht werden können (z. B. wird list(1, 2, 3)
zu einem Vektor 1:3
).
@ 42 -
Um zur 42-Antwort hinzuzufügen (sollte ein Kommentar gewesen sein, aber dann konnte ich den Code nicht formatieren)
Ich musste auch die Namen der Elemente der Vektoren in der Liste drucken, also fügte ich diese Zeile über der cat-Anweisung wie folgt ein:
%Vor%Ergebnis
%Vor%