我正在尝试将xtable用于三维数组。我的最小示例是
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如果你能给我一些解决这个问题的建议,我将不胜感激。提前谢谢。
发布于 2012-04-20 00:37:53
a_ply不会返回任何内容,所以希望您的函数可以保存这些内容或其他内容。您传递给函数的i是基于您提供的边距的数组的子集。因此,您先发送2x2数组C1,然后发送2x2数组C2:
a_ply(Test, 3, function(i) {print(i); print('-----')})因此,使用i索引到Test数组是没有意义的。
为什么不干脆:
apply(Test, 3, xtable)或者使用plyr:
alply(Test, 3, xtable)对于:
a_ply(Test, 3, function(i) print(xtable(i)))发布于 2016-05-28 02:57:25
这是一个旧线程,但我在当前的项目中遇到了类似的问题。我想要一个HTML表输出,其中的标题使用我的数组的第三个dim的名称进行标记。
通过以不同的方式使用我的数组,解决了这个问题。这个answer引导我找到了我的解决方案。
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))https://stackoverflow.com/questions/10232506
复制相似问题