我有大约 10,000 张 png 图像整齐地保存在我 PC 上的不同文件中。我想编写一个函数,该函数执行诸如转到特定文件夹并迭代地将该文件夹中的所有 png 文件复制粘贴到 word 文档的功能。这在R中可能吗?
我看过包R2wd
,但遗憾的是它只有一个函数,它接受 RData 并将其绘图输出到 word 文档(函数wdPlot
)。
我还为每个绘图保存了 RData,因此我应该能够简单地加载与特定绘图关联的 RData,然后使用wdPlot
. 问题是,当我生成我的 png 时,情节是 grobs,我做了如下的事情:
png("rp.png",width=w,height=h)
plot(rp)
#Increase size of title
grid.edit(gridTitle_Ref, gp=gpar(fontsize=20))
#Other grid.edit alterations
dev.off()
save(rp)
现在,当我尝试通过首先将 rp 加载到 RI 中天真地执行以下操作来将该 rp 放到 word 文档中时,它不会将标题放大或任何其他grid.edit
更改的图输出到 MS Word。
load("rp.Rdata")
png("rp.png",width=w,height=h)
wdPlot(rp)
#Increase size of title
grid.edit(gridTitle_Ref, gp=gpar(fontsize=20))
#Other grid.edit alterations
dev.off()
所以,重申一下:我有所有这些 png 文件。在不同的时候,我必须将它们的一个子集复制粘贴到一个 word 文档中。我懒得每次都手动做,想要一个程序为我做。
编辑 1
所以,根据下面的建议,我已经阅读了 Markdown。在这篇文章之后如何使用 knitr 为降价设置本地图像的大小? 我写了一些类似的东西:
```{r,echo=FALSE,fig.width=100, fig.height=100}
# Generate word documents of reports
# Clear all
rm(list=ls())
library(png)
library(grid)
library(knitr)
dir<-"location\of\file"
setwd(dir)
# Output only directories:
folders<-dir()[file.info(dir())$isdir]
for(folder in folders){
currentDir<-paste(dir,folder,"\\",sep="")
setwd(currentDir)
#All files in current folder
files<-list.files()
imgs<-[A list of all the png images in this particular file that I want in the word document - the png names]
for(img in imgs){
imgRaster<-readPNG(img)
grid.raster(imgRaster)
}
}
```
以下是生成的 Word 文档中的内容的屏幕截图。我该如何解决这个问题?当上面的 for 循环运行时,我希望图像一个接一个地出现在文档中。
请注意,这是我第一次使用 Markdown,因此评论中链接的任何相关教程也可能会有很大帮助。
编辑 2 我遵循了下面第二个答案的示例。这是我获得的输出
如您所见,没有图像,只有 html 标签。我该如何解决?