2 votes

Commande R dir.create et file.path

Je viens de commencer à apprendre r et je suis déconcerté par la question suivante donnée dans le cours :

Créer un répertoire dans le répertoire de travail actuel appelé "testdir2" et un sous-répertoire appelé "testdir3", le tout en une seule commande en utilisant dir.create() et file.path().

Je n'ai pas réussi à faire accepter ma réponse et j'ai trouvé un autre site en ligne qui donnait les réponses. Voici la réponse donnée par l'autre site :

dir.create(file.path('testdir2', 'testdir3'), recursive = TRUE)

Après avoir copié/collé cette réponse, je n'ai toujours pas pu progresser dans le cours. Y a-t-il un problème avec la réponse ?

De plus, pourquoi vouloir utiliser file.path pour créer les dossiers. Ne serait-il pas plus logique de faire ceci :

dir.create("testdir2/testdir3", recursive = TRUE)

Quel est l'intérêt d'utiliser la fonction file.path pour créer des dossiers ?

3voto

De Novo Points 4575

L'objectif de l'utilisation de file.path() La création de dossiers permet d'écrire une fonction, un script ou un paquetage qui peut être utilisé par des personnes utilisant différents types d'ordinateurs. Les différents types d'ordinateurs, ou plates-formes, utilisent des séparateurs de fichiers différents. Les systèmes Unix utilisent la barre oblique : / . Cela inclut les Macs. Les systèmes Windows utilisent la barre oblique inverse : \ .

Essayez de regarder .Platform et vous verrez qu'il existe un certain nombre de variables auxquelles vous pouvez vous référer pour créer un code indépendant de la plate-forme. .Machine en est une autre.

Quoi qu'il en soit, l'idée est que file.path(dir1, dir2, dir3) peut créer un chemin d'accès valide quel que soit le type de plate-forme sur laquelle R fonctionne.

Pour ce qui est de la raison pour laquelle un correcteur automatique n'a pas accepté votre réponse, il peut être très pointilleux, en particulier en ce qui concerne les caractères d'espacement cachés que l'on peut parfois détecter en copiant et en collant. Parfois, ils testent la sortie que votre commande produit, mais parfois les (mauvais) évaluateurs automatiques ne testent que l'entrée, donc même si votre commande produirait le même comportement, s'il n'est pas exactement le même, l'évaluateur automatique ne l'acceptera pas.

0voto

TMAN Points 1

J'ai réussi à faire fonctionner ce code :

dir.create(file.path("testdir2","testdir3"), recursive = TRUE)

Je pense que vous avez juste besoin de guillemets doubles autour de "testdir2" y "testdir3" .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X