我有一个实验室分析仪,它以.csv或.xlsx格式生成结果,但是现在我必须手动将输出结果输入到我们的结果跟踪软件系统中,因为复制粘贴不起作用。>
我想编写一个R脚本,可以将.csv的结果转换为软件程序,而我想到的最好的方法是将结果生成为条形码/ QR码,然后可以对其进行扫描。到软件程序。为此,我需要将制表符分隔的输出包含在QR码中。到目前为止,我可以使用qrcode
包逐个结果生成QR码,但是如果我有50多个结果,则无法为每个结果生成QR码,也无法弄清楚如何得到qrcode
包裹给我我需要的东西。
# Example dataframe
test <- LETTERS[1:10]
result.one <- rnorm(1:10)
result.two <- rnorm(1:10)
df <- data.frame(test, result.one, result.two)
预期的输出是一个QR码,可以对其进行扫描以生成与该代码的输出类似的结果:
library("openxlsx")
library("dplyr")
write.xlsx(select(df, test, result.one), file = "H:/R/junk1.xlsx")
write.xlsx(select(df, test, result.two), file = "H:/R/junk2.xlsx")
其中junk1将是一个QR码,junk2将是另一个,等等...
如果我能弄清楚这一点,我可以节省我的员工每天繁琐的工作时间……这将是一个很大的帮助!
答案 0 :(得分:0)
我将其发布为我自己的问题的答案,尽管我不会接受它,因为我没有完全做我想做的事情。我仍然希望不必为每个结果列扫描16个QR码,但这就是我现在能想到的全部内容。
我正在为“ result.one”列中的每个结果生成一个jpeg的QR码,然后将jpeg粘贴到新列中。最后,我将解析每个“ result.X”列,并将此输出粘贴为每个结果的新表。如果有人有更好的方法,我会全力以赴!
使用r-markdown
---
title: "QR Code in Column"
author: "dorton"
date: "2019/01/20"
output: html_document
---
library(qrcode)
library(knitr)
#Generate the data frame
test <- LETTERS[1:10]
result.one <- round(rnorm(1:10),2)
df <- data.frame(test, result.one, stringsAsFactors = FALSE)
df$result.one <- as.character(df$result.one) # qrcode_gen requires a character
#Generate a qrcode for each test in df$test
#Requires defining an output folder and writing a new jpeg for each qrcode (not ideal)
for(i in 1:length(df$test)){
mypath <- file.path("path/name", "qrs", paste(df$test[i], ".jpg", sep = ""))
jpeg(file=mypath)
sapply(df$result.one, function(x) qrcode_gen(df$result.one[i]))
dev.off()
}
df$QRCodes <- paste0('![]','(path/name/', df$test, '.jpg)', '{width=0.5in}') #making the width 0.5 inches so it's readable
kable(df)