r - R 中 system() 命令中的括号

标签 r bash

我一整天都在尝试寻找一种在 R 中运行这一行(在 bash 中工作)的方法,并且我不断收到有关圆括号的错误...我知道粘贴命令在处理括号时会感到困惑,但我尝试转义括号,将它们放在双引号中,如“')'”,但没有任何效果,所以我没有资源。有人知道这在 R 中如何工作吗?

system(paste("sortBed -i <(awk -v a=1 -v b=2 -v c=3 -v d=4 '{OFS=FS=\"\t\"} {if ($d < 0.5) print \"value\"$a, $b-\"'$d'\", $c+\"'$d'\"}' file.in > file.out", sep=""))

sh: -c: line 0: syntax error near unexpected token `('

最佳答案

原因似乎是 R system() 命令调用 bourne shell (sh) 而不是 bourne Again shell (bash)。例如,命令

> system("paste <(echo 'Hi')")

会失败,在此过程中提到 bourne shell:

sh: -c: line 0: syntax error near unexpected token `('

一种解决方案是在 bourne shell 中打印命令并将输出通过管道传输到 bash:

> system("echo \"paste <(echo 'Hi')\" | bash")
Hi

关于r - R 中 system() 命令中的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773537/

相关文章:

R,dplyr,根据 R 中的一个条件列有条件地更改多列中的值

r - 如何删除 ggplot 中的刻度标签而不影响绘图大小?

r - 奇怪的 "Non-continuous variable supplied to scale_x_continuous Error"

linux - grep:无效的正则表达式

bash - grep 所有 odt 文件并将它们通过管道传输到 odt2txt

bash - 为什么我无法指定包含 bash 数组变量长度的序列?

r - 如何将R中的向量组合成数据帧?

r - 整洁的评估 : Adding an argument to a function that prevents gathering

linux - Plink > 没有返回换行符

linux - 通过 ssh 运行命令时向远程机器提问