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