我已经打了一下,与system()和system2()欢乐,我突然想到我能救输出或在对象退出状态。一个玩具的例子:
system()
system2()
X <- system("ping google.com",intern=TRUE)
给我输出,而
X <- system2("ping", "google.com")
给我退出状态(在这种情况下为1,google不执行ping操作)。如果我既要输出又要退出状态,则必须执行2次系统调用,这似乎有点过头了。如何仅使用一个系统调用就能同时获得两者?
编辑:如果可能的话,我希望两者都在控制台中,而无需通过stdout="somefile.ext"在system2调用中使用临时文件并随后将其读入。
stdout="somefile.ext"
system2
从R 2.15开始,system2当stdout和/或stderr为TRUE 时,会将返回值作为属性给出。这使获取文本输出和返回值变得容易。
stdout
stderr
在此示例中,ret最终是带有属性的字符串"status":
ret
"status"
> ret <- system2("ls","xx", stdout=TRUE, stderr=TRUE) Warning message: running command ''ls' xx 2>&1' had status 1 > ret [1] "ls: xx: No such file or directory" attr(,"status") [1] 1 > attr(ret, "status") [1] 1