的R documentation on arrays狀態理解數組索引
在數據載體給予以相同的順序,因爲他們將出現在FORTRAN的數組中的值的值,即「列主順序,」 與第一個下標移動最快,最後一個下標最慢。
再後來給出了這個a clarifying example通過將數據加載到一個二維數組:
> x <- array(1:20, dim=c(4,5)) # Generate a 4 by 5 array.
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
與其他語言的經驗,我想x[1, 2]
,而不是x[2, 1]
,將2
,但這很容易調整我的想法。然而,就儘可能快地執行我的心智模式的轉變,接下來的例子搗毀它拆開:
> i <- array(c(1:3,3:1), dim=c(3,2))
> i # i is a 3 by 2 index array.
[,1] [,2]
[1,] 1 3
[2,] 2 2
[3,] 3 1
> x[i] # Extract those elements
[1] 9 6 3
所以,我可以看到這裏發生的事情是,我們提取的元素x[1, 3]
,x[2,2]
和x[3, 1]
。好吧,但是這不是完全違背了「專欄命令」的上述說法嗎?
從我的理解,i
本來應該2由3陣列,和R應該解釋爲x[i]
x[i[1, 1], i[2, 1]], x[i[1, 2], i[2, 2]], ...
。然而,我們觀察到的是,R代替x[i[1, 1], i[1, 2]], x[i[2, 1], i[2, 2]], ...
這是R中的基本不一致性,還是我完全誤解了文檔?
有另一種答案補充說,應該有(可能)是一個回答這個職位。我附上了一個[現已刪除的答案的截圖](http://i.stack.imgur.com/6wHOs.png),以幫助信譽低於10k的用戶(這可能對他們有幫助)。對於造成的不便,謹致歉意。 – 2016-07-12 19:34:33