2016-12-30 3 views
7

У меня есть карточка, которую я хочу сохранить в html-файле в определенной папке. Я использую Windows 7.savewidget из htmlwidget в R, не может сохранить файл html в другой папке

Я попытался следующие:

library(htmlwidgets) 
saveWidget(map_leaflet, file="ressources/test.html") 

library(htmlwidgets) 
saveWidget(map_leaflet, file="ressources\\test.html") 

library(htmlwidgets) 
path_name <- file.path("ressources", "test.html", fsep="\\") 
saveWidget(map_leaflet, file=path_name) 

library(htmlwidgets) 
path_name <- paste("ressources", "test.html", sep="/") 
saveWidget(map_leaflet, file=path_name) 

В качестве сообщения об ошибке, в зависимости от сессии Rstudio, я либо у

1) Ошибка в setwd (реж): не могут изменить рабочую директорию,

2) не удается найти путь

Когда я только сохранить, как это:

library(htmlwidgets) 
saveWidget(map_leaflet, file="test.html") 

Он отлично работает.

Заранее благодарю вас за помощь.

+0

похоже, что каталог 'ressources' не существует из того места, где выполняется код. Вы пытались проверить 'getwd()' в R перед запуском этого кода, чтобы убедиться, что вы используете его из правильной директории и 'dir()', чтобы убедиться, что 'ressources' существует в этом месте? Если оба они выглядят правильными, менее благоприятным решением может быть использование 'setwd (« ressources »)' для перехода к этому каталогу перед тем, как его сохранить. – user5359531

+2

Привет, поэтому я попробовал getwd() и dir(), и ressources отображались правильно. Затем я попробовал этот «путь» <- file.path (getwd(), «ressources», «test.html») '' saveWidget (map_leaflet, file = path) ', и на этот раз он отлично работает. Думаю, это просто необходимый путь. Можете ли вы сделать свой комментарий в качестве ответа, чтобы я мог отметить вопрос, как он ответил? Спасибо – tuttifolies

+0

Мои советы были просто устранением неполадок. По-прежнему звучит так, будто вы не выполняете код, откуда вы думаете. Но, как вы нашли, используя полные пути и используя 'file.path()', более надежные способы безопасного прохождения путей. Вы также можете посмотреть на функцию 'normalizePath()'. Он может помочь вам получить абсолютный путь и также может сообщить вам, существует ли путь или нет. Попробуйте это, и вы увидите: 'normalizePath (". ")', 'NormalizePath (" ~ ")', 'normalizePath (" ./ foo ")' <- выдаст ошибку, если 'foo' не существует. Также вы можете просто не использовать относительные пути для 'file =' – user5359531

ответ

6

Согласен.

здесь обходной путь:

f<-"ressources\\test.html" 
saveWidget(map_leaflet,file.path(normalizePath(dirname(f)),basename(f))) 

Вопросов, как представляется, что saveWidget не работает с относительными путями и normalizePath не работает для путей к файлам, которые сделали существуют еще.

Я бы назвал это ошибкой в ​​saveWidget.

 Смежные вопросы

  • Нет связанных вопросов^_^