使用R,我希望创建一个二维码并将其嵌入到Excel电子表格(数百个代码和电子表格)中。显而易见的方法似乎是使用命令行创建QR码,并在R中使用“system”命令。有人知道如何通过“系统”命令传递R变量吗?谷歌不是太有用,因为“系统”有点通用,?系统不包含任何这方面的例子。
注意 - 我实际上使用的是数据矩阵而不是QR码,但在R问题中使用术语“数据矩阵”会导致严重破坏,所以让我们来谈谈QR码。 : - )
system("dmtxwrite my_r_variable -o image.png")
失败了,我尝试过“粘贴”的变种也失败了。感激地收到任何建议。
答案 0 :(得分:12)
假设我们要将变量x
传递给dmtxwrite
,您可以将其传递给:{/ p>
x = 10
system(sprintf("dmtxwrite %s -o image.png", x))
或者使用paste
:
system(paste("dmtxwrite", x, "-o image.png"))
但在这种情况下我更喜欢sprintf
。
答案 1 :(得分:0)
也可能值得考虑使用base::system2
,因为system2
提供了args
可以用于该目的的参数。在您的示例中:
my_r_variable <- "a"
system2(
'echo',
args = c(my_r_variable, '-o image.png')
)
将返回:
a -o image.png
等效于在终端中运行echo
。您可能还需要将输出重定向到文本文件:
system2(
'echo',
args = c(my_r_variable, '-o image.png'),
stdout = 'stdout.txt',
stderr = 'stderr.txt'
)