我是一名使用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
按钮。
这是一台我没有管理员权限的工作PC(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,位于“ D:/ Working Directory”中,名为“ Processing and QA Template.rmd”:
---
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程序包后可能需要使缓存无效。 – Yiyi Xie 17年6月6日19:00” ,但我不确定这是什么意思或如何去做。我通常会在每个脚本的开头运行cat("\014")
和rm(list=ls())
,但是我不知道这是否意味着建议,它没有帮助。