2010-03-25 4 views
6

Je veux écrire des données temporaires sur disque dans un paquet R, et je veux être sûr qu'il peut s'exécuter sur chaque système d'exploitation sans supposer que l'utilisateur a des droits d'administrateur. Existe-t-il une fonction R existante qui peut fournir un chemin vers un répertoire temporaire sur tous les systèmes d'exploitation majeurs? Ou un moyen de référencer le répertoire personnel d'un utilisateur?Ecriture de données temporaires à partir de R

Sinon, je pensais à essayer ceci:

Sys.getenv("temp") 

Je suppose que je ne peux pas attendre que les gens d'avoir accès en écriture à leurs emplacements de R, sinon je pourrais faire référence à un chemin dans le répertoire du package: .find.package("package.name") .

Répondre

10

Oui, il y a: tempdir.

Ceci renverra un répertoire spécifique à une session dans le répertoire temporaire de l'utilisateur. (Il donne donc la même valeur chaque fois que vous l'appelez dans une session R spécifique.) Fermez R et redémarrez, et il vous donnera un répertoire différent.)

pathological::temp_dir fournit une enveloppe plus conviviale.

+1

Parfait, merci! Note to self: essayez apropos avant de poser une question: 'apropos (" temp ")' aurait retourné 'tempdir' et' tempfile'. – Shane

-1

Après une autre réflexion, je pense que cela devrait fonctionner:

path.expand("~") 

qui donnera le répertoire, ce qui devrait avoir un accès en écriture.

+0

Cela donne le répertoire personnel, pas le répertoire de travail. – hadley

+3

Je serais plus qu'un peu ennuyé si le code de quelqu'un que je cours a commencé à écrire des fichiers temporaires dans mon répertoire personnel. –

+0

Dans ce cas, il peut s'agir de fichiers que l'utilisateur voudra conserver, mais je lui donnerais le choix. C'est vraiment d'avoir un bon réglage par défaut. Je vais utiliser 'tempdir' à la place. – Shane

Questions connexes