将R_markdown编织为PDF时在loadnamespace中出错

时间:2020-11-05 16:44:25

标签: r r-markdown knitr

这是我第一次使用R_Markdown

我创建了一个新的R_Markdown,并尝试将其编织为PDF。当我这样做时,出现以下错误


processing file: R_markdown.Rmd
  |..........                                                            |  14%
  ordinary text without R code

  |....................                                                  |  29%
label: setup (with options) 
List of 1
 $ include: logi FALSE

  |..............................                                        |  43%
  ordinary text without R code

  |........................................                              |  57%
label: cars
  |..................................................                    |  71%
  ordinary text without R code

  |............................................................          |  86%
label: pressure (with options) 
List of 1
 $ echo: logi FALSE

  |......................................................................| 100%
  ordinary text without R code


output file: R_markdown.knit.md

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS R_markdown.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output R_markdown.tex --lua-filter "C:\Users\faiel\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\faiel\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --highlight-style tango --pdf-engine pdflatex --variable graphics --variable "geometry:margin=1in" 
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  namespace 'xfun' 0.17 is already loaded, but >= 0.19 is required
Calls: <Anonymous> ... namespaceImportFrom -> asNamespace -> loadNamespace
Execution halted

我不明白为什么会这样。我尝试了以下

install.packages("rmarkdown")

update.packages(ask = FALSE, checkBuilt = TRUE)
tinytex::tlmgr_update()

但没有运气

3 个答案:

答案 0 :(得分:0)

CRAN上的xfun版本目前为0.18。显然,您正在使用其他一些需要xfun版本0.19的软件包。因此,您需要停止使用该非CRAN软件包,或者从Github或其他未经测试的来源中更新xfun

您可以运行remotes::update_packages()在很多地方搜索更新。我不建议依赖非CRAN软件包:它们明天可能会以不兼容的方式更改。

要找出remotes软件包(或devtools)安装了哪些非CRAN软件包,可以运行

subset(as.data.frame(installed.packages(fields="RemoteType")), !is.na(RemoteType))

但是,我认为这不会检测到通过下载.tar.gz.zip文件而安装的软件包。我不知道如何检测到这些。

答案 1 :(得分:0)

loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) 中的错误: 命名空间 'xfun' 0.17 已加载,但需要 >= 0.19

如果您发现上述错误,您可以使用以下解决方案来消除错误。 同样的方法可以用于任何包。(代替 xfun,任何包名都可以存在)。

解决方案:
在 RStudio 中,导航到 ->Tools->Check For package updates,在这里您可以选择软件包并进行更新。 如果这不起作用,请更新 R 版本并尝试更新软件包。

通过执行上述方法,软件包将更新到更新的版本。

答案 2 :(得分:0)

我在 RStudio 1.4.1103.0 和 R 4.0.4 (Win10, 20H2) 下遇到了同样的问题。我更新安装的软件包后出现了问题。我不能确切地说是哪些,因为我更新了所有软件包。

Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : namespace 'xfun' 0.17 is already loaded, but >= 0.19 is required

无法更新 Xfun。 我卸载了 rstudio,然后分别安装了最新版本的 RStudio (11.04.) 和 R (4.0.5.)。之后我可以再次更新 xfun (0.22) 并且问题解决

总而言之,相当耗时,我不太明白问题所在。也许有更好的方法?