用于处理二维矩阵,rbind
并且cbind
是有用的函数。是否有更通用的函数可以在更多维度上执行相同的操作?假设我有这样的数据:
data <- lapply(c(11,22,33), function(i) matrix(i, nrow=2, ncol=4))
我想得到的是:
data <- do.call(c, data)
dim(data) <- c(2, 4, 3)
但不必自己计算所有尺寸。
是否有提供此功能的功能,无论是内置的还是作为合理通用包的一部分?或者你想分享你自己关于如何最优雅地实现这样一个功能的想法?
奖励积分:
- 如果该函数对维度的顺序进行了一些控制,则
aperm
可以避免后续调用。 - 如果它可以通过传递多个函数参数或一个参数来操作,那就太好了,尽管使用
list
ordo.call
,list
任何一个都足够了。 - 我想使用这样的函数作为foreach调用的
.combine
参数。所以它应该能够使用以下形式的调用来构造多维矩阵(每个调用恰好有两个参数,第一个通常是前一次调用的结果)甚至(超过两个参数,第一个仍然可能是之前的调用),具有相同的大小,导致矩阵的维度比这些维度高 1,并且该维度的大小为 4,对应于 4 个元素。f(f(f(a, b), c), d)
f(f(a, b), c, d)
a, b, c, d
a
d