[英]For a 4x6 matrix m in R, is there any difference between m[1:4,] and m[,1:6]?
我试图了解 R 如何遍历矩阵的元素,所以我对此进行了试验。 明明是一模一样的?
> m <- matrix (NA, nrow = 4, ncol = 6)
> m [, 1:6] <- 1:6
> m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 5 3 1 5 3
[2,] 2 6 4 2 6 4
[3,] 3 1 5 3 1 5
[4,] 4 2 6 4 2 6
> m [1:4, ] <- 1:6
> m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 5 3 1 5 3
[2,] 2 6 4 2 6 4
[3,] 3 1 5 3 1 5
[4,] 4 2 6 4 2 6
如果您的问题是对于给定的矩阵m
( m <- matrix (NA, nrow = 4, ncol = 6)
)。 m[1:4, ] <- 1:6
和m[, 1:6] <- 1:6
之间有什么区别吗,那么答案是否定的。 这也类似于您不需要指定行或列索引的m [] <- 1:6
。
然而,正如其他人已经评论的那样,这涉及值1:6
的回收,并且由于要填充的位置数( nrow * ncol
即4 * 6 = 24
)完全可以被提供的值数( 6
)整除,因此这是有效的。 如果您传递的值数量不均匀且未完全填充矩阵,则会导致错误。 例如 -
m [1:4, ] <- 1:5
m[1:4, ] <- 1:5 中的错误:要替换的项目数不是替换长度的倍数
因此,如果您依靠回收来填充矩阵,您应该完全了解它在做什么以及它可能产生的副作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.