7

使用 R,我希望创建一个 QR 码并将其嵌入 Excel 电子表格(数百个代码和电子表格)。显而易见的方法似乎是使用命令行创建二维码,并在 R 中使用“system”命令。有谁知道如何通过“system”命令传递 R 变量?谷歌不太有用,因为“系统”有点通用,?system 不包含任何示例。

注意 - 我实际上使用的是数据矩阵而不是 QR 码,但是在 R 问题中使用术语“数据矩阵”会导致严重破坏,所以让我们来谈谈 QR 码。:-)

system("dmtxwrite my_r_variable -o image.png")

失败了,我用“粘贴”尝试过的变体也是如此。任何建议都非常感激。

4

2 回答 2

16

假设我们有x要传递给的变量dmtxwrite,您可以像这样传递它:

x = 10
system(sprintf("dmtxwrite %s -o image.png", x))

或者使用paste

system(paste("dmtxwrite", x, "-o image.png"))

但我更喜欢sprintf这种情况。

于 2012-05-18T11:20:08.293 回答
1

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'
)
于 2019-01-04T07:43:53.890 回答