【问题标题】:create a matrix of given dimensions from a vector without replacement从向量创建给定维度的矩阵而不进行替换
【发布时间】:2021-06-14 19:35:14
【问题描述】:

我想从一个向量创建一个矩阵,但是条目的数量不能被维度整除。下面的例子。

vector1 <- c('a','b','c','d','e','f','g')
result1 <- a b c
           d e f
           g

我希望结果为 3 列宽,并根据需要填充尽可能多的行。我想要空格或末尾容易区分的东西而不是替换值。

【问题讨论】:

    标签: r matrix vector


    【解决方案1】:

    预先计算nrowncol 以创建矩阵。

    vector1 <- c('a','b','c','d','e','f','g')
    ncol <- 3
    nrow <- ceiling(length(vector1)/ncol)
    matrix(vector1[seq_len(nrow * ncol)], ncol = 3, byrow = TRUE)
    
    #    [,1] [,2] [,3]
    #[1,] "a"  "b"  "c" 
    #[2,] "d"  "e"  "f" 
    #[3,] "g"  NA   NA  
    

    【讨论】:

    • 感谢您修复我的示例。我忘了输入字符。
    【解决方案2】:

    我们可以使用stri_list2matrix

    library(collapse)
    library(stringi)
    stri_list2matrix(rsplit(vector1, as.integer(gl(length(vector1), 3, 
             length(vector1)))), byrow = TRUE)
    #    [,1] [,2] [,3]
    #[1,] "a"  "b"  "c" 
    #[2,] "d"  "e"  "f" 
    #[3,] "g"  NA   NA  
    

    数据

    vector1 <- c('a','b','c','d','e','f','g')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      相关资源
      最近更新 更多