0

我正在尝试将 xtable 用于 3 维数组。我最小的例子是

Test <- 
structure(1:8, .Dim = c(2L, 2L, 2L), .Dimnames = list(c("A1", 
"A2"), c("B1", "B2"), c("C1", "C2")))

library(plyr)
library(xtable)

a_ply(.data=Test, .margins=3, function(i) {
  xtable(x = Test[, , i])
      }
)

这会产生以下错误:

  Error in xtable(x = Test[, , i]) : subscript out of bounds

如果您能给我一些解决此问题的指示,我将不胜感激。提前致谢。

4

2 回答 2

4

a_ply不返回任何东西,所以希望你的函数能保存这些或类似的东西。您传递给函数的 i 是基于您提供的边距的数组的子集。所以你发送它是 2x2 数组 C1,然后是 2x2 数组 C2:

a_ply(Test, 3, function(i) {print(i); print('-----')})

所以索引到你的Test数组i没有意义。

为什么不只是:

apply(Test, 3, xtable)

或使用 plyr:

alply(Test, 3, xtable)

对于针织机:

a_ply(Test, 3, function(i) print(xtable(i)))
于 2012-04-19T16:37:53.027 回答
1

这是一个旧线程,但我在当前项目中遇到了类似的问题。我想要一个 HTML 表格输出,其标题使用我的数组的第三个暗淡的名称标记。

通过以不同方式使用我的数组来克服这个问题。这个答案 使我找到了解决方案。

x <- 1:dim(Test)[3]
l_ply(x, 
      function(i) cat(print(
                           xtable(Test[,,i],
                                  caption = paste("Heading ",
                                          dimnames(Test)[[3]][i],
                                          sep = "")),
                           type = "html", caption.placement = "top"), 
                         file = "Test.html",
                         append = TRUE))
于 2016-05-27T18:57:25.497 回答