我是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
答案 0 :(得分:1)
使用intern = TRUE
从system()
获取正确的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)