【问题标题】:passing variable in r system command在 r 系统命令中传递变量
【发布时间】:2019-03-19 19:24:44
【问题描述】:

我正在尝试将变量作为参数传递给 R 中的系统命令。

> system("ls>abc.csv")  #this works
> k<-"abc.csv"          
> system("ls>k")        #this does not work
> system2("ls>k")       #this does not work
sh: ls>k: command not found
> system("ls>$k")      #this does not work
sh: $k: ambiguous redirect

【问题讨论】:

  • 您需要按照您希望的方式实际构建字符串。查看 sprintf、paste 或任何其他字符串操作/连接函数。
  • 可以将变量值粘贴到字符串system(paste0("ls&gt;", k))

标签: r shell system


【解决方案1】:

您可以使用paste 构建操作系统命令并传递给system

system(paste("ls >", k))

【讨论】:

    【解决方案2】:

    这里的问题是如果将变量 k 放在字符串中,R 将无法识别它。 但是,如果您想反复使用它,将文件名放入变量中确实非常有用。

    你可以试试

    system(paste0("ls>", k))
    

    如果可行,你也可以写一个小函数:

    "%&%" <- function(a, b)paste0(a, b)
    

    然后你就可以了

    system("ls>"%&%k)
    

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 1970-01-01
      • 2018-07-08
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 2019-06-24
      相关资源
      最近更新 更多