无法使用include_graphics在Rmarkdown中插入png(错误:文件不是PNG格式)

2024-05-08

这个错误很奇怪。当我编织文档时,出现以下错误:

Quitting from lines 42-43 (sigminer-doc.Rmd) 
Error in png::readPNG(path, native = TRUE, info = TRUE) : 
  file is not in PNG format

但是,我可以通过以下方式读取pngpng::readPNG当我在 RStudio 中运行块时它也可以工作。

使用 RStudio 中的knitr按钮index.Rmd无法工作。

我也重新安装了png, knitr包,这个想法行不通。


UPDATE:

我尝试调试工作目录并将以下代码添加到标题中。

knitr::opts_knit$set(root.dir = rprojroot::find_rstudio_root_file())
knitr::knit_hooks$set(debug = function(before, options, envir) {
  if (!before) {
    envir = as.list(envir)
    message("Objects: ", paste(names(envir), collapse = " "))
    for (i in names(envir)) {
      if (!startsWith(i, ".")) {
        message(
          i, " = ", envir[[i]]
        )
      }
    }
  }
})

工作目录如预期。

Objects: workdir root.dir
workdir = /Users/wsx/Documents/GitHub/sigminer-doc
root.dir = /Users/wsx/Documents/GitHub/sigminer-doc
  |.....                                                                                                                                 |   4%
  ordinary text without R code

  |......                                                                                                                                |   5%
label: unnamed-chunk-3 (with options) 
List of 2
 $ echo   : logi FALSE
 $ fig.cap: chr "The illustration of SBS signature, fig source: https://www.nature.com/articles/nrg3729"

Quitting from lines 64-65 (sigminer-doc.Rmd) 
Error in png::readPNG(path, native = TRUE, info = TRUE) : 
  file is not in PNG format

knitr 也没有停在代码块中

stopifnot(file.exists("fig/sbs_signature_overview_nat_review.png"))

我发现这个问题是从数字上来的。

> png::readPNG("fig/sbs_signature_overview.png")
 [ reached getOption("max.print") -- omitted 3 matrix slice(s) ]
Warning message:
In png::readPNG("fig/sbs_signature_overview.png") :
  libpng warning: iCCP: known incorrect sRGB profile
> png::readPNG("fig/sbs_signature_overview_nat_review.png")
Error in png::readPNG("fig/sbs_signature_overview_nat_review.png") : 
  file is not in PNG format

不过,我之前可以正确编织这份文件......

我的会议:

> devtools::session_info()
─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value                       
 version  R version 4.0.0 (2020-04-24)
 os       macOS High Sierra 10.13.6   
 system   x86_64, darwin17.0          
 ui       RStudio                     
 language (EN)                        
 collate  zh_CN.UTF-8                 
 ctype    zh_CN.UTF-8                 
 tz       Asia/Shanghai               
 date     2020-05-11                  

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package      * version date       lib source        
 assertthat     0.2.1   2019-03-21 [1] CRAN (R 4.0.0)
 backports      1.1.6   2020-04-05 [1] CRAN (R 4.0.0)
 bibtex         0.4.2.2 2020-01-02 [1] CRAN (R 4.0.0)
 Biobase      * 2.48.0  2020-04-27 [1] Bioconductor  
 BiocGenerics * 0.34.0  2020-04-27 [1] Bioconductor  
 bookdown       0.18    2020-03-05 [1] CRAN (R 4.0.0)
 callr          3.4.3   2020-03-28 [1] CRAN (R 4.0.0)
 cli            2.0.2   2020-02-28 [1] CRAN (R 4.0.0)
 cluster      * 2.1.0   2019-06-19 [2] CRAN (R 4.0.0)
 codetools      0.2-16  2018-12-24 [2] CRAN (R 4.0.0)
 colorspace     1.4-1   2019-03-18 [1] CRAN (R 4.0.0)
 crayon         1.3.4   2017-09-16 [1] CRAN (R 4.0.0)
 data.table     1.12.8  2019-12-09 [1] CRAN (R 4.0.0)
 desc           1.2.0   2018-05-01 [1] CRAN (R 4.0.0)
 devtools       2.3.0   2020-04-10 [1] CRAN (R 4.0.0)
 digest         0.6.25  2020-02-23 [1] CRAN (R 4.0.0)
 doParallel     1.0.15  2019-08-02 [1] CRAN (R 4.0.0)
 dplyr          0.8.5   2020-03-07 [1] CRAN (R 4.0.0)
 ellipsis       0.3.0   2019-09-20 [1] CRAN (R 4.0.0)
 evaluate       0.14    2019-05-28 [1] CRAN (R 4.0.0)
 fansi          0.4.1   2020-01-08 [1] CRAN (R 4.0.0)
 foreach        1.5.0   2020-03-30 [1] CRAN (R 4.0.0)
 fs             1.4.1   2020-04-04 [1] CRAN (R 4.0.0)
 furrr          0.1.0   2018-05-16 [1] CRAN (R 4.0.0)
 future         1.17.0  2020-04-18 [1] CRAN (R 4.0.0)
 ggplot2        3.3.0   2020-03-05 [1] CRAN (R 4.0.0)
 globals        0.12.5  2019-12-07 [1] CRAN (R 4.0.0)
 glue           1.4.0   2020-04-03 [1] CRAN (R 4.0.0)
 gridBase       0.4-7   2014-02-24 [1] CRAN (R 4.0.0)
 gtable         0.3.0   2019-03-25 [1] CRAN (R 4.0.0)
 htmltools      0.4.0   2019-10-04 [1] CRAN (R 4.0.0)
 iterators      1.0.12  2019-07-26 [1] CRAN (R 4.0.0)
 knitr          1.28    2020-02-06 [1] CRAN (R 4.0.0)
 lifecycle      0.2.0   2020-03-06 [1] CRAN (R 4.0.0)
 listenv        0.8.0   2019-12-05 [1] CRAN (R 4.0.0)
 magrittr       1.5     2014-11-22 [1] CRAN (R 4.0.0)
 memoise        1.1.0   2017-04-21 [1] CRAN (R 4.0.0)
 munsell        0.5.0   2018-06-12 [1] CRAN (R 4.0.0)
 NMF          * 0.22.0  2020-02-12 [1] CRAN (R 4.0.0)
 pacman       * 0.5.1   2019-03-11 [1] CRAN (R 4.0.0)
 pheatmap       1.0.12  2019-01-04 [1] CRAN (R 4.0.0)
 pillar         1.4.4   2020-05-05 [1] CRAN (R 4.0.0)
 pkgbuild       1.0.8   2020-05-07 [1] CRAN (R 4.0.0)
 pkgconfig      2.0.3   2019-09-22 [1] CRAN (R 4.0.0)
 pkgload        1.0.2   2018-10-29 [1] CRAN (R 4.0.0)
 pkgmaker     * 0.31.1  2020-03-19 [1] CRAN (R 4.0.0)
 plyr           1.8.6   2020-03-03 [1] CRAN (R 4.0.0)
 png            0.1-7   2013-12-03 [1] CRAN (R 4.0.0)
 prettyunits    1.1.1   2020-01-24 [1] CRAN (R 4.0.0)
 processx       3.4.2   2020-02-09 [1] CRAN (R 4.0.0)
 ps             1.3.2   2020-02-13 [1] CRAN (R 4.0.0)
 purrr          0.3.4   2020-04-17 [1] CRAN (R 4.0.0)
 R.cache        0.14.0  2019-12-06 [1] CRAN (R 4.0.0)
 R.methodsS3    1.8.0   2020-02-14 [1] CRAN (R 4.0.0)
 R.oo           1.23.0  2019-11-03 [1] CRAN (R 4.0.0)
 R.utils        2.9.2   2019-12-08 [1] CRAN (R 4.0.0)
 R6             2.4.1   2019-11-12 [1] CRAN (R 4.0.0)
 RColorBrewer   1.1-2   2014-12-07 [1] CRAN (R 4.0.0)
 Rcpp           1.0.4.6 2020-04-09 [1] CRAN (R 4.0.0)
 registry     * 0.5-1   2019-03-05 [1] CRAN (R 4.0.0)
 remotes        2.1.1   2020-02-15 [1] CRAN (R 4.0.0)
 reshape2       1.4.4   2020-04-09 [1] CRAN (R 4.0.0)
 rlang          0.4.6   2020-05-02 [1] CRAN (R 4.0.0)
 rmarkdown      2.1     2020-01-20 [1] CRAN (R 4.0.0)
 rngtools     * 1.5     2020-01-23 [1] CRAN (R 4.0.0)
 rprojroot      1.3-2   2018-01-03 [1] CRAN (R 4.0.0)
 rstudioapi     0.11    2020-02-07 [1] CRAN (R 4.0.0)
 scales         1.1.0   2019-11-18 [1] CRAN (R 4.0.0)
 sessioninfo    1.1.1   2018-11-05 [1] CRAN (R 4.0.0)
 sigminer     * 1.0.5   2020-05-09 [1] local         
 stringi        1.4.6   2020-02-17 [1] CRAN (R 4.0.0)
 stringr        1.4.0   2019-02-10 [1] CRAN (R 4.0.0)
 styler         1.3.2   2020-02-23 [1] CRAN (R 4.0.0)
 testthat       2.3.2   2020-03-02 [1] CRAN (R 4.0.0)
 tibble         3.0.1   2020-04-20 [1] CRAN (R 4.0.0)
 tidyselect     1.0.0   2020-01-27 [1] CRAN (R 4.0.0)
 usethis        1.6.1   2020-04-29 [1] CRAN (R 4.0.0)
 vctrs          0.2.4   2020-03-10 [1] CRAN (R 4.0.0)
 withr          2.2.0   2020-04-20 [1] CRAN (R 4.0.0)
 xfun           0.13    2020-04-13 [1] CRAN (R 4.0.0)
 xtable         1.8-4   2019-04-21 [1] CRAN (R 4.0.0)
 yaml           2.2.1   2020-02-01 [1] CRAN (R 4.0.0)

[1] /Users/wsx/R_library
[2] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

该问题是由错误的文件格式引起的。虽然我之前以“.png”文件扩展名保存错误文件,但它不是 png 格式。我仍然不知道为什么这个文件可以被读取png有时包。

我更正了格式,问题就消失了。

> error_file = magick::image_read("fig/sbs_signature_overview_nat_review.png")
> print(error_file)
  format width height colorspace matte filesize density
1   WEBP   685    521       sRGB FALSE    18390   72x72
> right_png <- magick::image_convert(error_file, "png")
> right_png
  format width height colorspace matte filesize density
1    PNG   685    521       sRGB FALSE        0   72x72
> magick::image_write(right_png, path = "fig/sbs_signature_overview_nat_review2.png", format = "png")

我学一点magick和调试knitr这里。感谢作者们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用include_graphics在Rmarkdown中插入png(错误:文件不是PNG格式) 的相关文章

  • 如何在knitr和RStudio中为word和html设置不同的全局选项?

    我正在使用 RStudio 0 98 932 和 knitr 1 6 想要为word和html设置不同的全局knitr选项 例如 想要将word的fig width和fig height设置为6 html的fig width和fig hei
  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • 跟踪循环迭代

    抛硬币 成功 你赢100 否则你输50 你会一直玩 直到你口袋里有钱a 的价值如何a在任何迭代中都被存储 a lt 100 while a gt 0 if rbinom 1 1 0 5 1 a lt a 100 else a lt a 50
  • 从日期变量创建月末日期

    我有一个包含日期变量的大型数据框 它反映了该月的第一天 有没有一种简单的方法来创建代表该月最后一天的新数据框日期变量 以下是一些示例数据 date start month seq as Date 2012 01 01 length 4 by
  • 如何添加链接以从我的 R闪亮应用程序在新窗口中打开 pdf 文件?

    我可以使用 a 从我的 Shiny 应用程序添加到外部站点的超链接 a google href http www google com 但如何创建一个链接来打开 pdf 或类似 文件 看起来应该很简单 但我找不到任何例子 我的问题与此类似
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • R - 计算 bin 中特定值的数量

    我有一个如下所示的数据框 df Value lt c 1 1 0 2 1 3 4 0 0 1 2 0 3 0 4 5 2 3 0 6 Sl lt c 1 20 df lt data frame Sl Value gt df Sl Value
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 如何在 data.table 中分组后使用条件计算行数

    我有以下数据框 dat lt read csv s1 s2 v1 v2 a b 10 20 a b 22 NA a b 13 33 c d 3 NA c d 4 5 NA c d 10 20 dat gt A tibble 6 x 4 gt
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • R ggplot 中的柯尔莫哥洛夫-斯米尔诺夫图

    我正在尝试在 r 中绘制 KS 图 一切似乎都很顺利 除了我只能使用颜色来可视化两个不同的样本而不是线型这一事实 我已经尝试过以下方法 sample1 lt SD13009 sample2 lt SD13009PB group lt c r
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的

随机推荐