RMarkdown: «Ошибка: путь для html_dependency не найден:» - PullRequest
0 голосов
/ 12 декабря 2018

Я химик, который использует R и R Studio для анализа данных масс-спектрометрии.У меня есть автоматизированные сценарии, которые обрабатывают мои данные, потому что файлов много.Сценарии вызывают rmarkdown, используя render() для импорта данных, манипулирования фреймом данных, сохранения обработанного фрейма данных в формате .csv и генерирования html графиков.У меня проблема с рендерингом файлов rmarkdown, так как я недавно обновился до R v3.5.1 и R Studio v1.1.463.Я получаю ошибку: 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))

Я несколько раз удалял и переустанавливал пакеты.Я даже полностью удалил папку с библиотекой, а затем переустановил.Мои пакеты обновлены, но у меня возникли проблемы с установкой пакетов с момента обновления, включая rmarkdown.Мне пришлось использовать install.packages(“package”, type=”binary”), чтобы установить зависимости для rmarkdown, чтобы заставить его установить.Обычно я могу просто использовать кнопку Install в R Studio.

Это рабочий ПК (Windows 10, 64-битный), к которому у меня нет доступа администратора.Я должен удалить / установить с помощью ИТ в моем университете, что является проблемой, поэтому я хочу прийти к ним с планом.В моей библиотеке пакетов по умолчанию используется сетевой диск, на котором я могу читать / писать, и у меня ограниченный доступ к жестким дискам;В любом случае я не могу изменить место установки пакетов в R Studio.Я не знаю, могу ли я переустановить более старую версию R и R Studio или это поможет.Многие пакеты, которые я использую, разработаны для текущей версии R, и у меня были некоторые другие проблемы, поэтому я обновил их в первую очередь.Точно такие же сценарии и файлы данных работают правильно на другом ПК (мой личный ноутбук, который также актуален для 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))
}

rmarkdown с именем «Processing»и 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 не может связать: html_dependency не найден

RNotebook не можетвывод из-за html_dependency не найден

R ищет неправильное место для html-зависимости

Одно из предложений по последней ссылке было очистить кеш: «Если вы кэшировали чанк, содержащий виджеты HTML, вам может потребоваться аннулировать кеш после обновления пакетов R.- Йихуэй Се 6 декабря '17 в 19:00 ”, но я не совсем уверен, что это значит или как это сделать.Обычно я запускаю cat("\014") и rm(list=ls()) в начале каждого сценария, но я не знаю, означает ли это предложение, и оно не помогло.

...