在R for Windows上,有两个函数可以调用系统命令。一方面,可以使用system()(或更新的system2()函数)来执行系统命令。另一方面,可以使用shell()。在我看来,他们都应该这样做。它们之间有什么区别?
通过阅读文档,shell被描述为一个更加用户友好的系统包装器。我可以看到两者都有不同的参数,但我并没有真正看到调用shell更加用户友好的观点。除此之外,我看不出任何其他差异,甚至执行一些基本代码也会得到相同的结果(引号除外)。
> system('ECHO "test"')
test
> shell('ECHO "test"')
"test"
使用一个而不是另一个的论点是什么?
答案 0 :(得分:1)
如果CMD.EXE
(Windows上的默认设置)接受了系统命令,则没有太大区别。但是,如果要使用sh
之类的不同shell来执行非CMD.exe脚本,则可以节省必须为每个系统命令添加前缀。它还有助于解决相关问题,例如必须为/
切换每\
个。