Функция write.xlsx выдает ошибку при определении пути с именем файла, но read.xlsx в порядке

У меня проблема с функцией write.xlsx2 пакета xlsx R. Например, см. код ниже.

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)

В то время как функция read.xlsx2 работает нормально, функция write.xlsx2 выдает ошибку

Ошибка в .jnew("java/io/FileOutputStream", jFile):
java.io.FileNotFoundException: /mydir/my_output_excel.xlsx (Нет такого файла или каталога)

Когда я удаляю часть paste0 и пишу только имя файла, все снова в порядке. Итак, проблема заключается в том, чтобы определить путь.

p.s. Мне интересно, возможно, write.xlsx игнорирует тильду ~, поэтому определение пути становится мусором.


person berkorbay    schedule 13.05.2014    source источник
comment
Попробуйте заменить main_path на path.expand("~/mydir/")   -  person James    schedule 11.06.2015
comment
Ух ты! Я не знал об этой команде. Это также работает. Спасибо @Джеймс.   -  person berkorbay    schedule 11.06.2015
comment
Очень ценный совет @James, спасибо!   -  person thiagoveloso    schedule 26.05.2016


Ответы (1)


Замена «~/» на «Пользователи//» работает для Mac (возможно, и для Linux). Тем не менее, я до сих пор не понимаю, как read.xlsx и write.xlsx могут так принципиально различаться.

person berkorbay    schedule 11.06.2015