无法读取R中执行的系统命令的输出

时间:2015-10-03 19:13:45

标签: r

我是R的新手。如果这个问题对你来说很简单,请耐心等待。

我试图从R执行java程序。

randomGraphPoints<-function(exec="randomcoordinates")
    {
      command=paste("java -cp . ",exec)
      system(command)
    }

执行上述函数randomGraphPoints时会显示如下所示的输出:

> source("Hello.R")
> randomGraphPoints()
(-12,7,-6,-7,10,-6,5,-8,-4,2,10,-12,-4,-13,-1,-15,12,12,1,8,-11,-13,-6,-3,6,-3,1,12,10,10,-8,15,-15,6,1,4,-13,-8,-6,2)

我的计划是创建一个由2列组成的矩阵。输出应该是:

-12,7
-6,-7
10,-6
5,-8
-4,2
10,-12
....
-6,2

然后使用Graphviz绘制图表。

我遇到了需要将R系统调用的输出分配给R变量的阶段。

请告诉我如何继续。

TIA

1 个答案:

答案 0 :(得分:1)

使用intern = TRUEsystem()获取正确的R输出。然后您可以安全地分配reault。因此,请尝试将函数的最后一行更改为

system(command, intern = TRUE)

那么函数就是

randomGraphPoints <- function(exec = "randomcoordinates") {
    command = paste("java -cp . ", exec)
    system(command, intern = TRUE)
}

然后你可以做

x <- randomGraphPoints()
matrix(scan(text = x, sep = ","), ncol = 2, byrow = TRUE)