r语言 - RMarkdown: "Error: path for html_dependency not found:"



我是一名化学家,使用R和R Studio分析质谱数据。我有处理数据的自动化脚本,因为有很多文件。脚本使用render()调用rmarkdown来导入数据、操作数据帧、将处理后的数据帧保存为.csv并生成html绘图。自从我最近更新到R v3.5.1和R Studio v1.1463以来,我在渲染rmarkdown文件时遇到了问题。我收到的错误是:如果我在R Studio中使用knit按钮,或者如果我使用render(),就会得到Error: path for html_dependency not found:。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开发的,我遇到了一些其他问题,这就是我最初更新的原因。完全相同的脚本和数据文件在另一台电脑上正常运行(我的个人笔记本电脑,在R、R Studio和软件包上也是最新的(;我所做的唯一更改是对工作目录进行更改,以便正确加载数据。我在安装软件包时也没有遇到任何问题。

下面是我的代码示例;由于我的脚本很长,很复杂,而且是特定于数据的,所以我准备了一个更简化的版本作为示例。我真的不认为脚本本身有什么问题,正如我之前提到的,我在更新之前已经运行了很多次。我怀疑R、R工作室或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))
}

名为"处理和QA模板.rmd"的rmarkdown位于"D:/工作目录"中:

---
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无法编织:未找到html_dependency

RNotebook无法输出,因为找不到html_dependency

R在错误的位置查找html依赖

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

我通过让它工作

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

最新更新