2010-03-25 11 views
6

Ich möchte einige temporäre Daten auf der Festplatte in einem R-Paket schreiben, und ich möchte sicher sein, dass es auf jedem Betriebssystem ausgeführt werden kann, ohne dass der Benutzer über Administratorrechte verfügt. Gibt es eine vorhandene R-Funktion, die einen Pfad zu einem temporären Verzeichnis auf allen wichtigen Betriebssystemen bereitstellen kann? Oder eine Möglichkeit, auf das Home-Verzeichnis eines Benutzers zu verweisen?Schreiben von temporären Daten von R

Ansonsten dachte ich, dies zu versuchen:

Sys.getenv("temp") 

Ich nehme an, dass ich die Leute nicht Schreibzugriff auf ihre R Standorten erwarten haben, sonst ich einen Pfad im Paketverzeichnis verweisen konnte: .find.package("package.name") .

Antwort

10

Ja, gibt es: tempdir.

Dadurch wird ein sitzungsspezifisches Verzeichnis im temporären Verzeichnis des Benutzers zurückgegeben. (Es gibt also den gleichen Wert jedes Mal, wenn Sie es innerhalb einer bestimmten R-Sitzung aufrufen. Schließen Sie R und neu, und Sie erhalten ein anderes Verzeichnis.)

pathological::temp_dir bietet einen benutzerfreundlicheren Wrapper.

+1

Perfekt, danke! Anmerkung zu self: Probiere apropos, bevor du eine Frage stellst: 'apropos (" temp ")' hätte "tempdir" und "tempfile" zurückgegeben. – Shane

-1

Nach einigen weiteren Gedanken, denke ich, dass dies funktionieren soll:

path.expand("~") 

Das wird das Home-Verzeichnis geben, der Schreibzugriff hat.

+0

Das gibt das Home-Verzeichnis, nicht das Arbeitsverzeichnis. – hadley

+3

Ich wäre mehr als ein bisschen genervt, wenn jemand Code, den ich gerade ausführe, begann, temporäre Dateien in meinem Home-Verzeichnis zu schreiben. –

+0

In diesem Fall können dies Dateien sein, die der Benutzer behalten möchte, aber ich würde ihnen die Wahl geben. Es geht darum, eine gute Standardeinstellung zu haben. Ich werde stattdessen 'tempdir' verwenden. – Shane

Verwandte Themen