2014-05-13 18 views
10

Ich habe ein Problem mit der write.xlsx2 Funktion von xlsx R-Paket. Siehe zum Beispiel den folgenden Code.write.xlsx Funktion gibt Fehler beim Definieren des Pfades mit dem Dateinamen, aber read.xlsx ist in Ordnung

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) 

Während read.xlsx2 Funktion einwandfrei funktioniert, gibt write.xlsx2 Funktion den Fehler

Fehler in .jnew("java/io/FileOutputStream", jFile):
java.io.FileNotFoundException: /mydir/my_output_excel.xlsx (No such Datei oder das Verzeichnis)

Wenn ich den paste0 Teil entferne und schreibe nur den Dateinamen everyth Es ist wieder in Ordnung. Das Problem besteht also darin, den Pfad zu definieren.

ps Ich frage mich, vielleicht ignoriert die write.xlsx die Tilde ~ so Pfaddefinition wird Müll.

+3

Ersetzen Sie main_path durch 'path.expand (" ~/mydir/")' – James

+0

Wow! Ich war mir dieses Befehls nicht bewusst. Es funktioniert auch. Danke @James. – berkorbay

+0

Sehr wertvoller Hinweis @James, danke! – thiagoveloso

Antwort

4

Ersetzen von "~ /" durch "Users //" funktioniert für Mac (wahrscheinlich auch für Linux). Allerdings entgeht mir immer noch, wie sich read.xlsx und write.xlsx so grundlegend voneinander unterscheiden können.