Это похоже на мой предыдущий пост .
Используя пакет qrcode
, я могу сгенерировать список QR-кодов и вставить их в кадр данных, который затем можно распечатать на html
или pdf
. У меня возникают проблемы, когда в списке присутствуют последовательные идентичные результаты, в качестве .png
сохраняется только одно изображение, поэтому я не могу вставить список изображений в кадр данных, поскольку они имеют разную длину.
Я думаю, что мне чего-то не хватает в том, как эти файлы сохраняются.
Вот пример кода, который работает.
---
output: html_document
---
```{r test, echo=FALSE, fig.path="qr/", results ='asis', fig.show='hide'}
library(qrcode)
library(knitr)
#Some data
test <- LETTERS[1:5]
result <- c("55", "20", "55", "44", "65")
df <- data.frame(test, result, stringsAsFactors = FALSE)
#This generates a list of QR codes successfully
qrs <- lapply(df$result, function(qr) {
qrcode_gen(qr) # create qrcode
nrow(qr) # save number of rows of df
})
path <- paste0(opts_current$get("fig.path"), opts_current$get("label"), "-")
#I suspect this is where the problem exists.
df$qrs <- paste0("![](", path, seq_along(qrs), ".png){width=72px}")
kable(df, format = "html")
```
Теперь вот пример, который не работает. Единственное отличие - это порядок данных «результата». Я сделал 2 последовательных результата как 55, и результат вставляет только один из 55 результатов.
---
output: html_document
---
```{r junk, echo=FALSE, fig.path="qr/", results ='asis', fig.show='hide'}
library(qrcode)
library(knitr)
#Some data
test <- LETTERS[1:5]
result <- c("55", "55", "20", "44", "65")
df <- data.frame(test, result, stringsAsFactors = FALSE)
#This generates a list of QR codes successfully
qrs <- lapply(df$result, function(qr) {
qrcode_gen(qr) # create qrcode
nrow(qr) # save number of rows of df
})
path <- paste0(opts_current$get("fig.path"), opts_current$get("label"), "-")
#I suspect this is where the problem exists.
df$qrs <- paste0("![](", path, seq_along(qrs), ".png){width=72px}")
kable(df, format = "html")
```
Мне кажется, что это простое решение, но по какой-то причине оно ускользает от меня. В конце концов, все, что я ищу, это этот фрагмент кода: df$qrs <- paste0("![](", path, seq_along(qrs), ".png){width=72px}")
, который не исключает данные.