r - env 参数在 system2 中不起作用?

标签 r r-faq

我正在尝试使用 system2 运行命令并使用 env 设置环境变量参数,但似乎没有设置。我在 Linux 上,所以这应该可以工作 [在帮助文件中它提到 env有时在 Windows 中不起作用]。

有谁知道如何在system32中设置环境变量吗? ?

例如。

system2('echo', args='foobar')
# foobar # as expected
system2('echo', args='$X', env="X=foobar")
#   # <-- nothing is printed. as if I had just done `echo`
# I expect to see 'foobar' echoed.

# pretty sure the above environment specification is right, but just in case
system2('echo', args='$X', env=c(X='foobar'))
# sh: 1: foobar: not found

# just to show it can work
system('X=foobar; echo $X')
# foobar

我只会用 system作为目前的解决方法,但 system帮助文件一直在讨论我应该如何使用 system2 .
(如果这是一个错误,我应该在哪里归档?)
> sessionInfo()
R version 3.2.5 (2016-04-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)

locale:
 [1] LC_CTYPE=en_AU.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_AU.UTF-8        LC_COLLATE=en_AU.UTF-8    
 [5] LC_MONETARY=en_AU.UTF-8    LC_MESSAGES=en_AU.UTF-8   
 [7] LC_PAPER=en_AU.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base  

最佳答案

由于进入 shell 的命令只是 paste(c(env, shQuote(command), args), collapse = " ") , 你可以做:

system2("echo", args = "$X", env = c("X=foobar;"))

关于r - env 参数在 system2 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39908415/

相关文章:

r - 使用 R 和 Rweka 在 termdocument 矩阵中使用 bigrams 而不是单个单词

r - 使用 R,如何将所有参数及其值传递给函数?

r - 为什么这些数字不相等?

r - 查找向量中多个元素的所有位置

r - 将列中以逗号分隔的字符串拆分为单独的行

r - xTable、Sweave、R、交叉表中的计数和百分比

r - 按两个向量提供的范围过滤,无需连接操作

r - Julia:显示函数体(查找丢失的代码)

r - 如何将矩阵子集化为一列,维护矩阵数据类型,维护行/列名称?

r - 在图上添加回归线方程和 R^2