首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R,将变量传递给系统命令

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

Stack Overflow用户
提问于 2012-05-18 19:17:39
回答 2查看 10.1K关注 0票数 7

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

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

代码语言:javascript
复制
system("dmtxwrite my_r_variable -o image.png")

失败,就像我用"paste“尝试的变体一样。感谢您提出的任何建议。

EN

回答 2

Stack Overflow用户

发布于 2012-05-18 19:20:08

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

代码语言:javascript
复制
x = 10
system(sprintf("dmtxwrite %s -o image.png", x))

或者使用paste

代码语言:javascript
复制
system(paste("dmtxwrite", x, "-o image.png"))

但在这种情况下,我更喜欢sprintf

票数 15
EN

Stack Overflow用户

发布于 2019-01-04 15:43:54

另外,使用base::system2可能是值得考虑的,因为system2提供了可用于该目的的args参数。在您的示例中:

代码语言:javascript
复制
my_r_variable <- "a"
system2(
    'echo',
    args = c(my_r_variable, '-o image.png')
)

将返回:

代码语言:javascript
复制
 a -o image.png

这相当于在终端中运行echo。您可能还希望将输出重定向到文本文件:

代码语言:javascript
复制
system2(
    'echo',
    args = c(my_r_variable, '-o image.png'),
    stdout = 'stdout.txt',
    stderr = 'stderr.txt'
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10651640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档