本文介绍了如何从R中的数据帧生成包含数据的二维码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个实验室分析器,可以生成.csv或.xlsx格式的结果,但是现在我必须手动将输出的结果键入我们的结果跟踪软件系统,因为复制-粘贴不起作用。

我想编写一个R脚本,它可以将结果从这个.csv转换成软件程序,我能想到的最好的方法是将结果生成条形码/二维码,然后我可以扫描到软件程序中。为此,我需要在二维码中包含以制表符分隔的输出。到目前为止,我可以使用包qrcode逐个结果生成二维码,但如果我有50多个结果,我不能为每个结果生成二维码,我也不知道如何让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)

预期输出是二维码,可以扫描该二维码以生成与此代码的输出类似的结果:

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")
垃圾1将是一个二维码,垃圾2将是另一个二维码,以此类推。

如果我能弄清楚这一点,我就可以节省我的员工每天繁琐的工作时间……所以这将是一个很大的帮助!

推荐答案

我发布这篇文章是为了回答我自己的问题,尽管我不会接受它,因为我不会完全做我想做的事情。我仍然希望不必为每个结果列扫描16个二维码,但这是我目前所能想到的全部。

我将为"Result.one"列中的每个结果生成一个二维码作为jpeg,然后将该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)

这篇关于如何从R中的数据帧生成包含数据的二维码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 04:49