Mat*_*ege 8 r rstudio r-markdown
我是一名化学家,使用 R 和 R Studio 分析质谱数据。我有处理我的数据的自动化脚本,因为有很多文件。脚本调用 rmarkdownrender()来导入数据、操作数据框、将处理后的数据框保存为 .csv 并生成绘图的 html。自从我最近更新到 R v3.5.1 和 R Studio v1.1.463 以来,我在渲染 rmarkdown 文件时遇到了问题。我收到的错误是:Error: path for html_dependency not found:如果我knit在 R Studio 中使用按钮,或者如果我使用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))
Run Code Online (Sandbox Code Playgroud)
我已经多次卸载并重新安装软件包。我什至一次完全删除了我的库文件夹,然后重新安装。我的软件包是最新的,但是自更新以来我在安装软件包时遇到了问题,包括 rmarkdown。我必须使用install.packages(“package”, type=”binary”)来安装 rmarkdown 的依赖项才能安装它。通常我可以只使用InstallR Studio 中的按钮。
这是一台我没有管理员访问权限的工作 PC(Windows 10,64 位)。我必须在我的大学通过 IT 卸载/安装,这很麻烦,所以我想带着计划来找他们。我的包库默认为我可以读/写的网络驱动器,并且我对硬盘的访问权限有限;无论哪种方式,我似乎都无法更改软件包在 R Studio 中的安装位置。我不知道我是否可以重新安装旧版本的 R 和 R Studio 或者它是否有帮助。我使用的很多包都是为当前版本的 R 开发的,我遇到了一些其他问题,这就是我首先更新的原因。完全相同的脚本和数据文件在另一台 PC 上正常运行(我的个人笔记本电脑,它也在 R、R Studio 和软件包上是最新的);我所做的唯一更改是对工作目录进行更改,以便正确加载数据。
这是我的代码示例;由于我的脚本很长、很复杂且特定于数据,因此我准备了一个更简化的版本作为示例。我真的不认为脚本本身有什么问题,正如我之前提到的那样,我在更新之前已经多次运行它们。我怀疑 R、R studio 或 rmarkdown 的安装有问题。
render()从 rmarkdown调用的主脚本:
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))
}
Run Code Online (Sandbox Code Playgroud)
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)
```
Run Code Online (Sandbox Code Playgroud)
最后,我发现以下类似的帖子似乎是相同的问题,但它们是旧的并且来自不同版本的 R,并且在这些情况下似乎没有解决:
RMarkdown 无法编织:找不到 html_dependency
由于找不到 html_dependency,RNotebook 无法输出
最后一个链接的一个建议是清除缓存:“如果您缓存了包含 HTML 小部件的块,您可能需要在更新 R 包后使缓存无效。– Yihui Xie 2017 年 12 月 6 日 19:00”但我不确定这意味着什么或如何去做。我通常在每个脚本的开头运行cat("\014")和rm(list=ls()),但我不知道这是否是建议的含义,并且没有帮助。
我通过以下方式让它工作:
.rs.restartR())。