我一整天都在尝试寻找一种在 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/