R plyr alply在退化数组上出错“错误的维度”

时间:2015-02-23 18:23:22

标签: r slice plyr

我正在使用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

0 个答案:

没有答案