2010-06-21 302 views
-1

我是R語言的新手,所以我只想知道如何在R中完成數組索引。我的意思是排序或涉及二維數組的任何計算。如何在R語言中執行數組索引?

+3

一個二維數組是R中的一個矩陣。您應該閱讀R.的簡介。 – Shane 2010-06-21 10:36:18

+0

這是一個[鏈接](http://www.bendixcarstensen.com/APC/linalg-notes-BxC.pdf)可能會發現有用。還有一個:[編程在R](http://zoonek2.free.fr/UNIX/48_R/02.html#2) – 2010-06-21 10:44:33

回答

2

這取決於,

要索引元件使用方括號:ar[1],或ar[1,1]用於2D。 所有列和行是:ar[,1]ar[1,]

對於排序,看看sortorder功能。

對於使用二維數組計算,你可以有:

的elementwise:ar1+ar2ar1*ar2

內產品:ar1%*%ar2

外積:outer(ar1,ar2)ar1%o%ar2

你必須要小心,儘管R會自動嘗試將元素回收到com,但數組的維數是正確的完成一個計算。

需要注意的一件事是,索引是基於1的,而不是像大多數語言那樣基於0,即第一個元素是ar[1]

+0

好吧,我正在寫一個代碼,我不得不執行像這樣的計算[我] =( - 12 *(a [i] + a [i + 1])+ 3 *(a [i + 2] + a [i + 3])+ 14 * a [i + 4])/向我展示了一個錯誤:Ops.data.frame(a [i],a [i + 4])中的錯誤:+僅針對同樣大小的數據幀定義,我無法理解它是什麼樣的錯誤。 !雖然我嘗試了各種可能性,但我沒有成功,所以請大家幫我解決。 - – abhinavvv 2010-06-21 16:55:21

+0

看起來a是一個數據幀,所以你可能想把它強制轉換成一個矩陣('as.matrix(a)'),或者提取一個向量(通過引用上面的整行或一列)。取決於它究竟是什麼。 – James 2010-06-22 09:03:37