这类似于我的previous post。
使用软件包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")
```
现在,这是一个不起作用的示例。唯一的区别是“结果”数据的顺序。我已经取得了两个连续的结果,即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}")
,其中不排除数据。