Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何组合同一矩阵的两列并交替排列值?_R_Matrix_Transform - Fatal编程技术网

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