r - 由于代码检查包并在它们丢失时安装它们,Rmarkdown 文档的编织失败。为什么以及我能做什么?
问题描述
这里的第一个问题,所以我希望我做的一切都是正确的。
我在用
if (!require(package)) install.packages('package')
library(package)
在我的 Rmarkdown 文档的顶部检查是否安装了一个包,如果没有,安装它,然后当然加载它。出于某种原因,第一行代码的存在阻止了我的文档被编织,并出现以下错误:
[...]
* 0x57adc60 0x41a98d3 C:\PROGRA~1\RStudio\bin\pandoc\pandoc.exe+0x3da98d3
* 0x57adc68 0x4280a19 C:\PROGRA~1\RStudio\bin\pandoc\pandoc.exe+0x3e80a19
... (maximum recursion depth reached.)
Error: pandoc document conversion failed with error 11
我通过仅从if (!require...
文档中删除行来测试它,我确信它们是唯一的罪魁祸首。有谁知道为什么,并且有任何代码替代品可以做同样的工作,同时允许我编织我的文档?
解决方案
这可能是由于 package 是一个向量,如果将这些行替换为以下内容,您会得到什么?
pkg_vec <- c("naniar", "pander")
for (pkg in pkg_vec){
if (!require(package = pkg, character.only = TRUE))
{
install.packages(pkgs = pkg, character.only = TRUE)}
library(pkg, character.only = TRUE)
}
推荐阅读
- c++ - 为什么不能前向声明 typedef?
- php - Laravel 不断将表迁移到错误的数据库中
- javascript - 选择所有复选框(两个单独的复选框组)
- java - RecyclerView 无限滚动到顶部(聊天应用)
- swift - 如何在不使用 Firebase 控制台的情况下发送推送通知
- powershell - 如何使用变量的值作为转换类型?
- redirect - Nginx 2 vhost 配置文件冲突,第二个配置文件的域显示“重定向过多”
- vb.net - 这个更新查询语句有什么问题 vb.net
- haproxy - 方法为 POST 时的 Haproxy url_sub
- android - 如何删除sqlitedatabase中的重复值?