首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于数组的xtable

用于数组的xtable
EN

Stack Overflow用户
提问于 2012-04-20 00:26:19
回答 2查看 683关注 0票数 0

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

代码语言:javascript
复制
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])
      }
)

这会产生以下错误:

代码语言:javascript
复制
  Error in xtable(x = Test[, , i]) : subscript out of bounds

如果你能给我一些解决这个问题的建议,我将不胜感激。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 00:37:53

a_ply不会返回任何内容,所以希望您的函数可以保存这些内容或其他内容。您传递给函数的i是基于您提供的边距的数组的子集。因此,您先发送2x2数组C1,然后发送2x2数组C2:

代码语言:javascript
复制
a_ply(Test, 3, function(i) {print(i); print('-----')})

因此,使用i索引到Test数组是没有意义的。

为什么不干脆:

代码语言:javascript
复制
apply(Test, 3, xtable)

或者使用plyr:

代码语言:javascript
复制
alply(Test, 3, xtable)

对于:

代码语言:javascript
复制
a_ply(Test, 3, function(i) print(xtable(i)))
票数 4
EN

Stack Overflow用户

发布于 2016-05-28 02:57:25

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

通过以不同的方式使用我的数组,解决了这个问题。这个answer引导我找到了我的解决方案。

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10232506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档