当我将以下命令直接输入到 R 控制台时
library("xts")
mySeries <- xts(c(1.0, 2.0, 3.0, 5.0, 6.0), order.by=c(ISOdatetime(2001, 1, 1, 0, 0, 0), ISOdatetime(2001, 1, 2, 0, 0, 0), ISOdatetime(2001, 1, 3, 0, 0, 0), ISOdatetime(2001, 1, 4, 0, 0, 0), ISOdatetime(2001, 1, 5, 0, 0, 0)))
resultingSeries <- to.monthly(mySeries)
resultingSeries
我会得到这样的输出
mySeries.Open mySeries.High mySeries.Low mySeries.Close
Jan 2001 1 6 1 6
当我查看属性时,我看到以下输出
attributes(resultingSeries)
$dim
[1] 1 4
$dimnames
$dimnames[[1]]
NULL
$dimnames[[2]]
[1] "mySeries.Open" "mySeries.High" "mySeries.Low" "mySeries.Close"
$index
[1] 978307200
attr(,"tclass")
[1] "yearmon"
$tclass
[1] "POSIXct" "POSIXt"
$tzone
[1] ""
$class
[1] "xts" "zoo"
$.indexCLASS
[1] "yearmon"
这与我在 Java 中得到的相同。我想知道魔法发生在哪里,所以我看到了在 R 中得到的漂亮输出。我无法访问事件循环,因为我正在使用这样的 JRI(因为这是推荐的方式并简化了错误处理):
REngine engine = REngine.engineForClass("org.rosuda.REngine.JRI.JRIEngine");
REXP result = engine.parseAndEval(...)
/edit 在 Java 中,我执行上面的每个命令,如下所示:
REXP result = engine.parseAndEval("resultingSeries") // or any other command
我得到的是
org.rosuda.REngine.REXPDouble@4ac66122+[12]
有效载荷为双倍:1、6、1、6 属性与上面指定的相同。
现在 R 做了一些魔术来显示上面的输出。有没有一种方法可以让我获得相同的输出而无需自己手动创建它?R 获得上述输出的实现存储在哪里?