R:你如何将矩阵转换为具有单个元素的列表?

R: How would you convert a matrix into a list with a single element?

数据:

input1 <- matrix(c(2, 15))
input2 <- list(5, integer(0), c(5, 6))

我有一个如下所示的矩阵 (input1):

         [,1]
[1,]    2
[2,]   15

我想将其转换成如下所示的列表对象:

[[1]]
[1] 2 15

这样做的最佳方法是什么?

如果函数可以将这样的列表 (input2) 作为输入而不对其进行任何更改,这也会很有用:

[[1]]
[1] 5

[[2]]
integer(0)

[[3]]
[1]  5 16

[[4]]
[1] 9

[[5]]
integer(0)

这是执行此操作的函数 -

change_matrix_to_list <- function(x) {
  if(inherits(x, 'matrix')) list(c(x))
  else x
}

input1 <- matrix(c(2, 15))
input2 <- list(5, integer(0), c(5, 6))

change_matrix_to_list(input1)

#[[1]]
#[1]  2 15

change_matrix_to_list(input2)

#[[1]]
#[1] 5

#[[2]]
#integer(0)

#[[3]]
#[1] 5 6

这会检查输入是否有 class 'matrix' 然后将其更改为列表或保持原样。