2
我愿意使用Bash
的diff
命令比较R
中的两条路径(命名为a
和b
)。通过`system(..)'使用来自R的'diff`
在bash我就从R请勿
$ a=Path/to/foo/directory/
$ b=Path/to/bar/directory/
$ diff <(printf ${a} | tr/'\n') <(printf ${b} | tr/'\n')
3c3
< foo
---
> bar
所以我想
a="Path/to/foo/directory/"
b="Path/to/bar/directory/"
system(
paste0(
"a=",a,
";b=",b,
";diff <(printf ${a} | tr/'\n') <(printf ${b} | tr/'\n')"
)
)
OR
system(
paste0(
"diff <(printf ",a," | tr/'\n') <(printf ",b," | tr/'\n')"
)
)
但都返回一个错误。
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `a=Path/to/foo/directory/;b=Path/to/bar/directory/;diff <(printf ${a} | tr/''
即使将paste0
函数的输出复制粘贴到bash中也可以正常工作。
可能有更好的方法来比较R中的字符串,我会欢迎其他解决方案。不过,我特别感兴趣的是了解我使用system()
函数时出了什么问题,以及如何解决它。
我不认为'/斌/ sh'支持'<('进程替换,你可以得到在'bash'工作。 – r2evans