Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.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将矩阵整形为1列时出现问题,请按T或F的相同结果_R_Matrix - Fatal编程技术网

R将矩阵整形为1列时出现问题,请按T或F的相同结果

R将矩阵整形为1列时出现问题,请按T或F的相同结果,r,matrix,R,Matrix,我创建了一个矩阵,并希望创建一个新的1列宽的矩阵,通过遍历,然后使用下一行,遍历,然后下一行,遍历…等方式填充数据 我假设m2会产生我想要的结果,但事实并非如此 我进一步感到困惑,因为将byrow设置为真或假似乎没有效果 感谢您花时间澄清此行为,一旦正确理解,它必须是正确的。来自?矩阵 m <- matrix(1:9,3,3, byrow = TRUE) m m2 <- matrix(m, ncol = 1, byrow = TRUE) m2 m3 <- matrix(m, n

我创建了一个矩阵,并希望创建一个新的1列宽的矩阵,通过遍历,然后使用下一行,遍历,然后下一行,遍历…等方式填充数据

我假设m2会产生我想要的结果,但事实并非如此

我进一步感到困惑,因为将byrow设置为真或假似乎没有效果

感谢您花时间澄清此行为,一旦正确理解,它必须是正确的。

来自?矩阵

m <- matrix(1:9,3,3, byrow = TRUE)
m
m2 <- matrix(m, ncol = 1, byrow = TRUE)
m2
m3 <- matrix(m, ncol = 1, byrow = FALSE)
m3
identical(m2,m3)
desiredM <- matrix(t(m), ncol = 1)
desiredM
非原子类R对象由as.vector强制,所有属性都被丢弃

这意味着传递给矩阵的向量是

byrow对输出没有影响的原因是它决定了如何将向量中的数据读取到新矩阵中,而不是如何读取旧矩阵中的值

因此,鉴于as.vector通过在横贯行之前向下读取列来强制矩阵,您可能需要执行以下操作:

as.vector(m)
[1] 1 4 7 2 5 8 3 6 9
从?矩阵

非原子类R对象由as.vector强制,所有属性都被丢弃

这意味着传递给矩阵的向量是

byrow对输出没有影响的原因是它决定了如何将向量中的数据读取到新矩阵中,而不是如何读取旧矩阵中的值

因此,鉴于as.vector通过在横贯行之前向下读取列来强制矩阵,您可能需要执行以下操作:

as.vector(m)
[1] 1 4 7 2 5 8 3 6 9
matrix(t(m), ncol= 1)