在尝试刷新我的R“知识”时玩弄我做了这个
> a <- matrix(1:20, byrow=TRUE, nrow = 4)
> a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
> b <- a[3:4, 1:2]
> b
[,1] [,2]
[1,] 11 12
[2,] 16 17
> c <- matrix(b, byrow = TRUE, nrow = 2)
> c
[,1] [,2]
[1,] 11 16
[2,] 12 17
为什么c
与b
不同?引擎盖下会发生什么?
答案 0 :(得分:6)
matrix
是vector
,只是维度。因此,如果您打包matrix
以创建另一个matrix
,它会将值视为vector
,并且因为byrow = TRUE
参数在那里,它会按每个列的&#39; b&#39; (适用于matrix
,data.frame
,tibble
- unlist
),然后通过首先填充行来创建新的matrix