write.xlsx function gives error when defining path with the file name but read.xlsx is fine

berkorbay picture berkorbay · May 13, 2014 · Viewed 7.5k times · Source

I have a problem with the write.xlsx2 function of xlsx R package. For instance, see the code below.

main_path<-"~/mydir/"
read.xlsx2(paste0(main_path,"my_input_excel.xlsx"), sheetIndex=1)
a<-1
write.xlsx2(a, paste0(main_path,"my_output_excel.xlsx"), sheetName="Sheet1", col.names=TRUE, row.names=FALSE, append=FALSE)

While read.xlsx2 function works fine, write.xlsx2 function gives the error

Error in .jnew("java/io/FileOutputStream", jFile) :
java.io.FileNotFoundException: /mydir/my_output_excel.xlsx (No such file or directory)

When I remove the paste0 part and write only the file name everything is fine again. So the problem is to define path.

p.s I am wondering, perhaps the write.xlsx ignores the tilde ~ so path definition becomes garbage.

Answer

berkorbay picture berkorbay · Jun 11, 2015

Replacing "~/" with "Users//" works for Mac (probably for Linux as well). Though, it still eludes me how read.xlsx and write.xlsx could differ in such a fundamental way.