为什么 as.numeric 将矩阵转换为向量,如何将结果保留为矩阵?
Why does as.numeric convert a matrix to a vector, and how do I keep the result as a matrix?
以下代码将 3x3 逻辑矩阵转换为具有 9 个元素的向量:
as.numeric(matrix(rep(FALSE, 9), nrow = 3))
# [1] 0 0 0 0 0 0 0 0 0
为什么会发生这种情况,我该如何避免这种情况?抱歉,如果之前有人问过这个问题,我能找到的唯一参考是:
一个选择是先创建一个对象,然后将输出分配回它
m1 <- matrix(rep(FALSE, 9), nrow = 3)
m1[] <- as.numeric(m1)
或者一个 hacky 选项是
+(matrix(rep(FALSE, 9), nrow = 3))
# [,1] [,2] [,3]
#[1,] 0 0 0
#[2,] 0 0 0
#[3,] 0 0 0
或用 dim
赋值
`dim<-`(as.numeric(matrix(rep(FALSE, 9), nrow = 3)), c(3, 3))
以下代码将 3x3 逻辑矩阵转换为具有 9 个元素的向量:
as.numeric(matrix(rep(FALSE, 9), nrow = 3))
# [1] 0 0 0 0 0 0 0 0 0
为什么会发生这种情况,我该如何避免这种情况?抱歉,如果之前有人问过这个问题,我能找到的唯一参考是:
一个选择是先创建一个对象,然后将输出分配回它
m1 <- matrix(rep(FALSE, 9), nrow = 3)
m1[] <- as.numeric(m1)
或者一个 hacky 选项是
+(matrix(rep(FALSE, 9), nrow = 3))
# [,1] [,2] [,3]
#[1,] 0 0 0
#[2,] 0 0 0
#[3,] 0 0 0
或用 dim
`dim<-`(as.numeric(matrix(rep(FALSE, 9), nrow = 3)), c(3, 3))