R:减少阵列的尺寸

时间:2015-05-19 13:56:31

标签: arrays r dimension

我们说我有

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

如何在data内转换f以获取

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

而不是

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

? 或者x[,1,]输入f后是不可能的?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用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))