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'
然后将其更改为列表或保持原样。
数据:
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'
然后将其更改为列表或保持原样。