Arrays 当操作生成二维矩阵时保留数组类

Arrays 当操作生成二维矩阵时保留数组类,arrays,r,class,matrix,Arrays,R,Class,Matrix,我有一个数组,可以有一个或多个页面或工作表(我的名字代表第三维)。我正在尝试对数组执行操作。当只有一张纸或一页时,操作的结果是一个矩阵。我希望结果是一个数组。即使操作结果只有一页或一页,是否有办法保留类数组 这里有一个例子。我希望my.var.2和my.var.3成为arrays。变量my.pages在此处设置为1,这似乎是导致问题的原因。但是,my.pages可以是>1。如果my.pages来自help([): 您的代码,重新访问: set.seed(1234) my.rows <

我有一个
数组
,可以有一个或多个页面或工作表(我的名字代表第三维)。我正在尝试对
数组执行操作。当只有一张纸或一页时,操作的结果是一个
矩阵
。我希望结果是一个
数组
。即使操作结果只有一页或一页,是否有办法保留类
数组

这里有一个例子。我希望
my.var.2
my.var.3
成为
array
s。变量
my.pages
在此处设置为
1
,这似乎是导致问题的原因。但是,
my.pages
可以是
>1
。如果
my.pages来自
help([)

您的代码,重新访问:

set.seed(1234)

my.rows    <- 10
my.columns <- 4
my.pages   <- 1

my.var.1 <- array( rnorm((my.rows*my.columns*my.pages), 10, 2),
                        c(my.rows,my.columns,my.pages))
my.var.2 <-  2 * my.var.1[,-my.columns,,drop=FALSE]
my.var.3 <- 10 * my.var.1[,-1,,drop=FALSE]

class(my.var.2)
## [1] "array"
class(my.var.3)
## [1] "array"
set.seed(1234)
我的
if(my.pages == 1) {my.var.2 <- array(my.var.2, c(my.rows,(my.columns-1),my.pages))}
Usage:
     x[i, j, ... , drop = TRUE]
...
drop: For matrices and arrays.  If 'TRUE' the result is coerced to
      the lowest possible dimension (see the examples).  This only
      works for extracting elements, not for the replacement.  See
      'drop' for further details.
set.seed(1234)

my.rows    <- 10
my.columns <- 4
my.pages   <- 1

my.var.1 <- array( rnorm((my.rows*my.columns*my.pages), 10, 2),
                        c(my.rows,my.columns,my.pages))
my.var.2 <-  2 * my.var.1[,-my.columns,,drop=FALSE]
my.var.3 <- 10 * my.var.1[,-1,,drop=FALSE]

class(my.var.2)
## [1] "array"
class(my.var.3)
## [1] "array"