【发布时间】:2021-06-14 19:35:14
【问题描述】:
我想从一个向量创建一个矩阵,但是条目的数量不能被维度整除。下面的例子。
vector1 <- c('a','b','c','d','e','f','g')
result1 <- a b c
d e f
g
我希望结果为 3 列宽,并根据需要填充尽可能多的行。我想要空格或末尾容易区分的东西而不是替换值。
【问题讨论】:
我想从一个向量创建一个矩阵,但是条目的数量不能被维度整除。下面的例子。
vector1 <- c('a','b','c','d','e','f','g')
result1 <- a b c
d e f
g
我希望结果为 3 列宽,并根据需要填充尽可能多的行。我想要空格或末尾容易区分的东西而不是替换值。
【问题讨论】:
预先计算nrow 和ncol 以创建矩阵。
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
【讨论】:
我们可以使用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')
【讨论】: