web-dev-qa-db-fra.com

Pourquoi j'obtiens cette erreur lors de l'écriture des données dans un fichier

J'ai ce code

myvector <- c(3.45235, 1.32525, ... , 2.41351)    # some numbers
write(myvector, "C:/mypath/myfile.txt")           # I use "/" instead of "\"

et j'obtiens l'erreur suivante:

Erreur dans le fichier (fichier, ifelse (append, "a", "w")): impossible d'ouvrir le fichier connexion En outre: message d'avertissement: dans le fichier (fichier, ifelse (append, "a", "w")): impossible d'ouvrir le fichier 'C: /mypath/myfile.txt': aucun fichier de ce type ou répertoire

J'ai lu ce tutoriel , mais je ne peux pas comprendre ce qui ne va pas avec mon code. Une idée?

modifier:

Comme @dickoa l'a souligné, j'ai besoin d'un chemin existant pour écrire un fichier. J'ai donc essayé de simplifier les choses de la manière suivante:

file.exists("C:/")
write(myvector, "C:/myfile.txt")

Étonnamment: P le chemin "C: /" existe (le résultat est VRAI) mais j'obtiens une erreur similaire:

Erreur dans le fichier (fichier, ifelse (append, "a", "w")): impossible d'ouvrir le fichier lien En outre: message d'avertissement: Dans le fichier (fichier, ifelse (append, "A", "w")): impossible d'ouvrir le fichier 'C: /mypath/myfile.txt': Autorisation refusée

8
888

Je sais que @dickoa a répondu à la question dans les commentaires, mais pour pouvoir donner au moins une réponse ici, je voulais passer en revue quelques pièges simples avec R sous Windows.

  1. Lorsque vous utilisez Windows, vous devez toujours utiliser des barres obliques pour les chemins. Dans R, les barres obliques inverses sont réservées aux valeurs d'échappement. Donc, un chemin dans R ressemble à: C:/path/to/my/directory
  2. Dans les nouvelles versions de Windows, C:\est protégé contre les écritures effectuées par les comptes d'utilisateurs. Si vous voulez écrire sur le C: \, vous devez être un administrateur. Pour ce faire, cliquez avec le bouton droit de la souris sur l’icône R de Windows et choisissez "Exécuter en tant qu’administrateur". Cela devrait également être fait lorsque vous installez des packages. Il se peut que vous n’ayez pas le droit d’installer des packages sur certaines versions de Windows si vous ne l’exécutez pas en tant qu’administrateur. 
  3. Si vous ne souhaitez pas exécuter R en tant qu'administrateur et que vous souhaitez écrire dans des fichiers, vous aurez par défaut les droits sur le répertoire C:/Users/username/.

Tout crédit à @dickoa pour sa réponse en premier.

Bonne chance!

17
Maurice Reeves

Parfois, le problème réside dans la dénomination du fichier. Par exemple, j'ai rencontré ce problème lorsque le nom du fichier contenait "\", car il y avait une liste dynamique avec des noms. Vous pouvez vous en passer ainsi en utilisant quelque chose comme: sometext = gsub ("/", "", sometext).

1
Ana Maria

Je viens de partager cette réponse avec un peu d'une meilleure explication ici , mais l'essentiel est: 

Essayez d’ouvrir le fichier dans Excel pour voir s’il est verrouillé par un autre utilisateur. Je recevais les mêmes messages d'erreur et pouvais comprendre qu'un collègue avait ouvert le fichier sur leur ordinateur, ce qui m'avait empêché de le modifier.

0
cparmstrong

ajouter juste aux réponses ici. 

La raison pour laquelle je faisais face à cette erreur était le chemin que j'essayais de sauvegarder en dépassant 256 caractères, et par conséquent l'erreur. 

Le problème a été résolu une fois que j'ai réduit la taille du chemin. 

0
mastershefi