savewidget from htmlwidget in R , cannot save html file in another folder

前端 未结 2 381
旧巷少年郎
旧巷少年郎 2020-12-31 04:42

I have a map leaflet that I want to save in an html file in a specific folder. I am using Windows 7.

I tried the following :

library(htmlwidgets)
sav         


        
相关标签:
2条回答
  • 2020-12-31 05:23

    Agreed.

    here is a workaround:

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

    The issues appear to be that saveWidget does not work with relative pathnames and normalizePath does not work for paths to files that done exist yet.

    I would call this a bug in saveWidget.

    edit:

    I have contribute what I think is an even better workaround to an existing open issue

    0 讨论(0)
  • 2020-12-31 05:32

    I use the with_dir function in the withr package to do this. I also put it in a wrapper function:

    save_leaflet <- function(plot, file, overwrite = FALSE){
      # save the file if it doesn't already exist or if overwrite == TRUE
      if( !file.exists(file) | overwrite ){
        withr::with_dir(new = dirname(file), 
                        code = htmlwidgets::saveWidget(plot, 
                                                       file = basename(file)))
      } else {
        print("File already exists and 'overwrite' == FALSE. Nothing saved to file.")
      }
    }
    
    0 讨论(0)
提交回复
热议问题