drop
功能和drop
子集功能中的[
参数完全或根本不工作。例如,如果我有一个第二维和第四维仅为长度1的四维数组,那么drop
将返回一个二维数组,同时删除这两个维度。我怎样才能放弃第四维而不是第二维?
e.g。
arr <- array(1:4, c(2, 1, 2, 1))
drop(arr)
arr[,,, 1, drop = TRUE]
在我的情况下这样做的原因是我可以正确设置数组以绑定abind
中的其他数组。在给出的示例中,可能希望将arr[,,, 1]
绑定到沿维度2的三维数组。
答案 0 :(得分:2)
我已经考虑了一些,并提出了解决方案。下面的函数定义了新的目标维度,并将数据拟合到这些维度的新数组中。 omit
是一个永不丢弃的维数的向量。
library("abind")
drop.sel <- function(x, omit){
ds <- dim(x)
dv <- ds == 1 & !(seq_along(ds) %in% omit)
adrop(x, dv)
}
如果有人认为他们有更优雅的解决方案,我很乐意看到它。