R:减少数组的维度

R: Dimension of reduced array

假设我有

x <- array(data=runif(a*b*c), dim=c(a,b,c))
f <- function(data)
{
   ...
   return(list(dim=dim(data))
}

如何在f内部转换data以获得

> f(data=x[,1,])
$dim
[1] a 1 c

而不是

> f(data=x[,1,])
$dim
[1] a c

? 或者一旦x[,1,]输入到f就不可能了?

非常感谢。

您可以使用 drop=FALSE 获取尺寸

 f <- function(data){
  return(list(dim=dim(data)))
 }

f(data=x[,1,, drop=FALSE])
#$dim
#[1] 3 1 3

数据

 a <- 3
 b <- 2
 c <- 3
 x <- array(data=runif(a*b*c), dim=c(a,b,c))