【问题标题】:RMarkdown: "Error: path for html_dependency not found:"RMarkdown:“错误:找不到 html_dependency 的路径:”
【发布时间】:2018-12-12 19:50:24
【问题描述】:

我是一名化学家,使用 R 和 R Studio 分析质谱数据。我有处理我的数据的自动化脚本,因为有很多文件。脚本使用render() 调用 rmarkdown 来导入数据、操作数据框、将处理后的数据框保存为 .csv 并生成 html 绘图。自从我最近更新到 R v3.5.1 和 R Studio v1.1.463 后,我在渲染 rmarkdown 文件时遇到了问题。我收到的错误是:Error: path for html_dependency not found:,如果我在 R Studio 中使用knit 按钮,或者如果我使用render(),我会得到。 rmarkdown 中的脚本运行完成,因为生成的对象存在于 R Studio 的环境窗口中,但 html 文件没有呈现,并且我收到停止 render() 循环的错误,我用来处理所有特定文件夹中的文件。这是我在更新之前做过很多次的过程。

我跑了traceback(),得到了以下结果:

8: stop("path for html_dependency not found: ", file, call. = FALSE)
7: FUN(X[[i]], ...)
6: lapply(dependencies, validate_html_dependency)
5: dependency_resolver(all_dependencies)
4: html_extras_for_document(knit_meta, runtime, dependency_resolver, 
       format_deps)
3: base(...)
2: output_format$pre_processor(yaml_front_matter, utf8_input, runtime, 
       knit_meta, files_dir, output_dir)
1: render("Processing and QA Template_INT_FINAL_MFAssignR.rmd", 
       output_file = paste0(substr(file_list[i], 1, nchar(file_list[i]) - 
           4), ".html"), output_dir = folder, params = list(data = file_list[i], path = folder))

我已经多次卸载并重新安装了软件包。我什至完全删除了我的库文件夹一次,然后重新安装。我的软件包是最新的,但自更新以来我在安装软件包时遇到了问题,包括 rmarkdown。我必须使用install.packages(“package”, type=”binary”) 安装 rmarkdown 的依赖项才能安装它。通常我可以在 R Studio 中使用Install 按钮。

这是我没有管理员访问权限的工作电脑(Windows 10,64 位)。我必须在我的大学通过 IT 卸载/安装,这很麻烦,所以我想给他们一个计划。我的包库默认为我可以读/写的网络驱动器,并且我对硬盘的访问权限有限;无论哪种方式,我似乎都无法更改 R Studio 中软件包的安装位置。我不知道我是否可以重新安装旧版本的 R 和 R Studio,或者是否有帮助。我使用的许多软件包都是为当前版本的 R 开发的,而且我遇到了一些其他问题,这就是我首先更新的原因。完全相同的脚本和数据文件在另一台 PC 上正常运行(我的个人笔记本电脑,在 R、R Studio 和软件包上也是最新的);我所做的唯一更改是对工作目录的更改,以便正确加载数据。我安装软件包也没有问题。

这是我的代码示例;由于我的脚本非常长、复杂且数据特定,因此我准备了一个更简化的版本作为示例。我真的不认为脚本本身有什么问题,正如我之前提到的,我在更新之前已经运行了很多次。我怀疑 R、R studio 或 rmarkdown 的安装有问题。

主脚本,从 rmarkdown 调用 render()

setwd("D:/Working Directory")
library("rmarkdown")
folder=paste0(getwd(),"/")
file_list=list.files(path=folder, pattern="*_MF.csv")
for (i in 1:length(file_list)){
      render("Processing and QA Template.rmd",
             output_file = paste0(substr(file_list[i],1, nchar(file_list[i])-4),".html"), output_dir = folder,
             params=list(data=file_list[i], path=folder))
}

rmarkdown,名为“Processing and QA Template.rmd”,位于“D:/Working Directory”中:

---
title: "Example Processing and QA"
author: "Matt Brege "
date: "2018-12-12"
output: html_document
params: 
  data: x
  path: x
---
```{r, echo=FALSE, message=FALSE}
library(dplyr)
library(ggplot2)
library(tidyr)

file_name <- substr(params$data, 1, nchar(params$data)-7)
folder <- params$path
input <- tbl_df(read.csv(paste0(file_name, "_MF.csv"), stringsAsFactors = FALSE)) 
```
```{r, echo=FALSE}
#...a series of long and complicated data manipulations later…
write.csv(input7, paste0("Output/", file_name, "_QAd.csv"), row.names=FALSE, na="")
```
```{r,r, echo=FALSE, warning=FALSE, message=FALSE}
#...plotting section…
# these are just examples
p1 <-ggplot(diamonds, aes(x=carat, y=price)) + geom_point()
print(p1)
p2<- ggplot(diamonds, aes(x=carat, y=price, color=clarity)) + geom_point()
print(p2)
p3<- ggplot(diamonds, aes(x=carat, y=price, color=cut)) + geom_point()
print(p3)
```

最后,我发现了以下关于似乎是同一个问题的类似帖子,但它们是旧的并且来自不同版本的 R,而且在这些情况下似乎并没有得到解决:

RMarkdown cannot knit: html_dependency not found

RNotebook cannot output due to html_dependency not found

R looks in the wrong place for html dependency

最后一个链接的一个建议是清除缓存:“如果您缓存了包含 HTML 小部件的块,您可能需要在更新 R 包后使缓存无效。 – Yihui Xie 2017 年 12 月 6 日 19:00” 但我不确定这意味着什么或如何去做。我一般在每个脚本的开头运行cat("\014")rm(list=ls()),但我不知道是不是这个建议的意思,它没有帮助。

【问题讨论】:

  • 您是否尝试过更新 pandoc?最简单的方法是使用installr::install.pandoc()
  • 我收到一条错误消息:“由于与 64 位版本的 Windows 不兼容,程序或功能无法启动或运行。请联系软件供应商询问是否兼容 64 位 Windows版本可用。”还有其他方法可以更新 pandoc 吗?
  • 我能够重新启动并运行。我必须卸载 R 和 R studio,清除与 R 相关的所有其他文件,包括我网络驱动器上的文件。我知道 R Studio 正在那里安装软件包,但在 Application Data 文件夹中还有其他与 R 相关的文件。之后,我将 R 和 R Studio 重新安装到“C:/R”和“C:/R Studio”,这是我可以写入的目录; R 的软件包安装在这些目录中,而不是网络驱动器中。现在似乎一切正常。
  • 我知道这是一个迟到的评论。我遇到了同样的错误,我只需单击knit 旁边的小箭头,然后单击Clear Knitr Cache... 即可解决它

标签: r rstudio r-markdown


【解决方案1】:

我让它工作了:

  1. 清除 Knitr Cashe...(请参见 RStudio 中 Knit 图标旁边的小箭头)。
  2. 我还必须重新启动 R (.rs.restartR())。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2023-03-17
    • 2018-07-18
    • 2016-01-24
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多