R 如何组合同一矩阵的两列并交替排列值?
R 如何组合同一矩阵的两列并交替排列值?,r,matrix,transform,R,Matrix,Transform,也许,这将是一个简单的一个,只是我不能得到它周围的头今天 如何组合同一矩阵的两列,使原始矩阵第1列中的元素1后跟第2列中的元素1,依此类推?例如,原始矩阵可能如下所示: set.seed(200) m <- matrix(sample(1:100, 10, replace=FALSE), ncol=2, byrow=TRUE, dimnames=NULL) m [,1] [,2] [1,] 54 58 [2,] 99 68 [3,] 65 80 [4,]
也许,这将是一个简单的一个,只是我不能得到它周围的头今天
如何组合同一矩阵的两列,使原始矩阵第1列中的元素1后跟第2列中的元素1,依此类推?例如,原始矩阵可能如下所示:
set.seed(200)
m <- matrix(sample(1:100, 10, replace=FALSE), ncol=2, byrow=TRUE, dimnames=NULL)
m
[,1] [,2]
[1,] 54 58
[2,] 99 68
[3,] 65 80
[4,] 67 9
[5,] 49 22
然后如何转换原始矩阵以实现第二个矩阵中所示的排列?当然,这只是一个例子,不是真实的数据。谢谢您的帮助。您可以在矩阵的转置(
t
)上使用c
或as.vector
,如下所示:
c(t(m))
# [1] 54 58 99 68 65 80 67 9 49 22
如果您想要一个如您所示的单列矩阵(或者,如注释中所述,您可以在此阶段跳过c
或as.vector
,因为您没有为正在创建的矩阵提供任何维度),请在matrix
中再次包装它
酷。很好。谢谢。啊,你又赢了我+1如果你用它制作一个矩阵,你甚至不需要
c
函数:matrix(t(m))
@Simon如果它有效,你应该将它标记为已回答。@Mike.Gahan谢谢,但请不要假设我在这里只发布了2个问题之后就知道了所有规则。
c(t(m))
# [1] 54 58 99 68 65 80 67 9 49 22
matrix(c(t(m)))
# [,1]
# [1,] 54
# [2,] 58
# [3,] 99
# [4,] 68
# [5,] 65
# [6,] 80
# [7,] 67
# [8,] 9
# [9,] 49
# [10,] 22