我正在使用R-package plyr中的函数alply将函数应用于沿3d-array的3d维度的每个数组。该函数返回一个矩阵。
有时,阵列的第一维或第二维只有一号,即退化。 在这种情况下,我从alply那里得到错误。
这是一个最小的例子:
require(abind) # adrop
#x <- array(1:6, dim=c(2,3,2)) # this works fine
x <- array(1:6, dim=c(1,3,2)) # has only one row: degenerate dimension
subCols <- function(mat){ mat[,1:2, drop=FALSE]}
subCols( adrop(x[,,1 ,drop=FALSE],3) )
alply(x, 3, subCols ) # error on wrong dimensions when only one row
我希望alply给我一个包含两个条目的列表,每个条目都有一行和两列的矩阵。 但是,我得到的错误是“错误的维数”(实际上是德语:“falsche Anzahl von Dimensionen”)。
前进的最佳方式是什么? 知道正确选择alply /试图处理条件特殊情况/编写专门的alply替换/ ...
祝你好运 thomasw
编辑:我在Windows上使用R版3.0.2,plyr版本1.8.1