R,将变量传递给系统命令

时间:2012-05-18 11:17:39

标签: r shell variables cran

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

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

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

失败了,我尝试过“粘贴”的变种也失败了。感激地收到任何建议。

2 个答案:

答案 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'
)