繁体   English   中英

对于R中的一个4x6矩阵m,m[1:4,]和m[,1:6]有区别吗?

[英]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:6m[, 1:6] <- 1:6之间有什么区别吗,那么答案是否定的。 这也类似于您不需要指定行或列索引的m [] <- 1:6

然而,正如其他人已经评论的那样,这涉及值1:6的回收,并且由于要填充的位置数( nrow * ncol4 * 6 = 24 )完全可以被提供的值数( 6 )整除,因此这是有效的。 如果您传递的值数量不均匀且未完全填充矩阵,则会导致错误。 例如 -

m [1:4, ] <- 1:5

m[1:4, ] <- 1:5 中的错误:要替换的项目数不是替换长度的倍数

因此,如果您依靠回收来填充矩阵,您应该完全了解它在做什么以及它可能产生的副作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM