Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why I get this error writing data to a file

Tags:

file

r

I have this code

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

and I get the following error:

Error in file(file, ifelse(append, "a", "w")) : cannot open the connection In addition: warning message: In file(file, ifelse(append, "a", "w")) : cannot open file 'C:/mypath/myfile.txt' : No such file or directory

I read this tutorial, but I can't understant what's wrong with my code. Any idea?

edit:

As @dickoa pointed out, I need an existing path to write a file, so I tried to simplify in the following way:

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

Surprisingly :P the path "C:/" exists (the result is TRUE) but I get a similar error:

Error in file(file, ifelse(append, "a", "w")) : cannot open the connection In addition: warning message: In file(file, ifelse(append, "a", "w")) : cannot open file 'C:/mypath/myfile.txt' : Permission denied

like image 356
888 Avatar asked Jun 17 '13 20:06

888


3 Answers

I know @dickoa answered the question in the comments, but in order to provide at least one answer here, I wanted to go through a few simple gotchas with R on Windows.

  1. When you are using Windows, you still have to use forward slashes for paths. In R, backslashes are reserved for escaping values. So a path in R looks like: C:/path/to/my/directory
  2. In newer variants of Windows, the C:\ is protected from writes by user accounts. If you want to write to the C:\, you must be an administrator. You can accomplish this by right-clicking on the R icon in Windows and choosing "Run as an administrator." This should also be done when you're installing packages. You may not have rights to install packages on certain Windows versions if you don't run it as an administrator.
  3. If you don't want to run R as an administrator, and you want to write to files, you will by default have rights to the C:/Users/username/ directory.

All credit to @dickoa again for his answer in first.

Best of luck!

like image 88
Maurice Reeves Avatar answered Oct 06 '22 00:10

Maurice Reeves


I just shared this answer with a bit of a better explanation here, but the gist of it is:

Try opening the file in Excel to see if it's locked by another user. I was receiving the same error messages and was able to figure out that a colleague had the file open on their computer which had locked me out of the ability to edit it.

like image 33
cparmstrong Avatar answered Oct 05 '22 23:10

cparmstrong


Sometimes the problem is in the naming of the file. For example,I have encountered this issue when in the name of the file there was as "\", as there was a dynamic list with names. You can pass by such thing by using something like: sometext = gsub("/"," ", sometext).

like image 25
Ana Maria Avatar answered Oct 05 '22 22:10

Ana Maria