R 阵列的可扩展性
我正在尝试将xtable用于三维数组。我最简单的例子是R 阵列的可扩展性,r,plyr,sweave,xtable,knitr,R,Plyr,Sweave,Xtable,Knitr,我正在尝试将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]) }
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])
}
)
如果你能给我一些解决这个问题的建议,我将不胜感激。提前感谢。
a\u 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)
对于knitr:
a_ply(Test, 3, function(i) print(xtable(i)))
a\u 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)
对于knitr:
a_ply(Test, 3, function(i) print(xtable(i)))
这是一个旧的线程,但我在当前项目中遇到了类似的问题。我想要一个HTML表格输出,标题使用数组第三个dim的名称进行标记 通过以不同的方式使用我的阵列,问题得以解决。这让我找到了解决办法
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))
x这是一个旧线程,但我在当前项目中遇到了类似的问题。我想要一个HTML表格输出,标题使用数组第三个dim的名称进行标记
通过以不同的方式使用我的阵列,问题得以解决。这让我找到了解决办法
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))
x你想做什么?预期的结果是什么?在这个简单的例子中,我想通过a\u层
打印Test[,1]
和Test[,2]
。你想做什么?预期的结果是什么?在这个简单的例子中,我想通过a层
打印Test[,1]
和Test[,2]
。他们希望使用knitr包含输出,因此他们可能希望自己的函数是function(x){print(xtable(x))}
,然后使用a_ply
来抑制所有其他输出。@Justin:如果您能告诉我如何在这些表的标题中包含第三维的名称,我将不胜感激。类似于第一个表标题中的C1
,以及第二个表标题中的C2
。谢谢sapply(dimnames(Test)[[3]],function(i){print(xtable(Test[,i],caption=i));return(NULL)})
我不知道knitr
好,但这使乳胶很好地发挥作用。@Justin:再次感谢你的帮助。您给定的代码运行良好,除了提供像这样的额外内容$c1null
。我想知道如何摆脱这个。非常感谢。他们希望使用knitr包含输出,因此他们可能希望自己的函数是function(x){print(xtable(x))}
,然后使用a_ply
来抑制所有其他输出。@Justin:如果您能告诉我如何在这些表的标题中包含第三维的名称,我将不胜感激。类似于第一个表标题中的C1
,以及第二个表标题中的C2
。谢谢sapply(dimnames(Test)[[3]],function(i){print(xtable(Test[,i],caption=i));return(NULL)})
我不知道knitr
好,但这使乳胶很好地发挥作用。@Justin:再次感谢你的帮助。您给定的代码运行良好,除了提供像这样的额外内容$c1null
。我想知道如何摆脱这个。谢谢