У меня есть ~ 10 000 изображений PNG, аккуратно сохраненных в разных файлах на моем ПК. Я хочу написать функцию, которая делает что-то вроде перехода в определенную папку и многократно копирует и вставляет все файлы png в этой папке в текстовый документ. Возможно ли это в R?
Я просмотрел пакет R2wd
, но, к сожалению, в нем есть только функция, которая принимает RData и выводит график в текстовый документ (функция wdPlot
).
У меня также есть RData, сохраненные для каждого графика, поэтому разум диктует, что я должен иметь возможность просто загрузить RData, связанный с конкретным графиком, а затем использовать wdPlot
. Проблема в том, что когда я сгенерировал свой png, графики были гробами, и я сделал следующее:
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 в документе Word, сначала загрузив его в R, я наивно делаю следующее, и он не выводит график в MS Word с увеличенным заголовком или любыми другими grid.edit
изменениями.
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-файлы. В разное время мне приходится копировать и вставлять их подмножество в текстовый документ. Мне лень каждый раз делать это вручную, и я хочу, чтобы программа делала это за меня.
ИЗМЕНИТЬ 1
Итак, согласно приведенным ниже предложениям, я прочитал об уценке. После этого сообщения Как установить размер для локального изображения использовать 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)
}
}
```
Ниже приведен скриншот того, что находится в результирующем текстовом документе. Как я могу это исправить? Я хочу, чтобы изображения появлялись в документе одно за другим по мере выполнения цикла for выше.
Обратите внимание, что я впервые использую Markdown, поэтому любые соответствующие руководства, ссылки на которые приведены в комментариях, также могут быть очень полезны.
EDIT 2 Я следовал примеру второго ответа ниже. Вот результат, который я получил:
Как видите, изображений нет, только html-теги. Как это исправить?