我正在尝试将一些交互式图形保存到额外的文件中。htmlwidget::saveWidget
可以正常工作。但是我通过将它们保存到其他文件夹中,例如将它们保存到结果文件夹中来遇到问题。
results_dir <- 'results'
if(!dir.exists(results_dir)) dir.create(results_dir)
p <- plotly::plot_ly(economics, x = ~date, y = ~pop,
type = 'scatter', mode = 'markers')
htmlwidgets::saveWidget(p,
file.path(results_dir, 'VSGs.html'))
错误消息是:
unaryizepath中的错误(basepath,"/",true(:
路径[1] ="结果":没有这样的文件或目录
有人有想法发生了什么事吗?
我知道之后只是移动文件,但是我希望解决此错误消息。
htmlwidgets::saveWidget(p, 'VSGs.html')
file.rename('VSGs.html', file.path(results_dir, 'VSGs.html'))
"结果"似乎不是有效的路径
尝试设置到存在的文件夹的完整路径。
这应该有效:
dir.create(paste0(getwd(),"/results"))
results_dir = paste0(getwd(),"/results") # get directory
然后使用result_dir作为节省的路径。
与r htmlwidget中的savewidget中的解决方法讨论了基本问题,无法将html文件保存在另一个文件夹中
tl/dr:使用以下
saveWidgetFix <- function (widget,file,...) {
## A wrapper to saveWidget which compensates for arguable BUG in
## saveWidget which requires `file` to be in current working
## directory.
wd<-getwd()
on.exit(setwd(wd))
outDir<-dirname(file)
file<-basename(file)
setwd(outDir);
saveWidget(widget,file=file,...)
}
使用Homebrew中的GNU-SED渲染后,您也可以修改HTML ...请确保在替换中使用绝对路径。
sed -i 's/"old_library_directory/"common/filepath/new_library_directory/g' *.html
这是SED语法的链接 - &gt;https://ss64.com/osx/sed.html