【问题标题】:Converting matrix to vector [duplicate]将矩阵转换为向量
【发布时间】:2017-06-10 09:18:57
【问题描述】:

我有以下几点:

a <- matrix(c(1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0), nrow = 2, ncol = 7, byrow = T)

> a
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    1    0    0    0    0    0
[2,]    0    1    0    1    1    0    0

当我尝试将a 转换为具有以下内容的向量时:

b <-  split(a, rep(1:nrow(a), each = ncol(a)))

> b
$`1`
[1] 1 0 1 1 0 0 0 # suppose to be 1 1 0 0 0 0 0

$`2`
[1] 1 0 1 0 0 0 0 # suppose to be 0 1 0 1 1 0 0 

我没有得到11000000101100 的预期输出。看起来向量首先按列填充。我该怎么做相反的事情?

【问题讨论】:

  • 还有split.default(a, 1:nrow(a))

标签: r matrix vector


【解决方案1】:

我们可以通过rowsplit

split(a, row(a))

或者使用OP的方法

split(a, rep(1:nrow(a), ncol(a)))
#$`1`
#[1] 1 1 0 0 0 0 0

#$`2`
#[1] 0 1 0 1 1 0 0

注意:确保不要使用each,而是使用times 作为matrixdata.frame 等按列拆分

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2015-01-30
    • 2014-03-09
    相关资源
    最近更新 更多