2014-03-31 56 views
0

這個問題很簡單。它包括將矩陣的每一行除以相應的向量數。例如。我有這樣的矩陣:按R中的向量劃分行

[3 6

9〜12]

而這個向量:

5,10

我想通過到矩陣的第一行劃分向量的第一數目,矩陣的第二行向量的第二數目。使得結果將是:

[0.6 1.2

0.9 1.2]

我試圖矩陣/向量(選項A)和基質/ REP(向量,每= nrow(矩陣))(選項B),按照How to divide each row of a matrix by elements of a vector in R。但是,正如您在下面看到的,結果並不相同。

A)

[0.6 1.8

0.6 1.2]

B)

[0.6 0.9

1.2 1.2]

預先感謝您的幫助。

+0

你真的想用矢量來劃分每一列嗎? –

+0

嗨馬修。我會盡力解釋自己。我不在尋找選項A或選項B.這些是我在Stackoverflow論壇中找到的,結果不一樣。我正在尋找我上面寫的答案矩陣。我需要將矩陣的第一列除以矢量的第一項,將矩陣的第二行除以第二項,依此類推。在我上面發佈的例子中,答案應該是:第一行3/5和6/5。第二個是9/10和12/10。謝謝。 – NuValue

回答

2

看來你想分開每個列的向量。

a <- matrix(c(3,9,6,12), 2) 
dev <- c(5,10) 

a/dev 
    [,1] [,2] 
[1,] 0.6 1.2 
[2,] 0.9 1.2 

這裏,所謂矢量dev通過循環擴展到a長度。由於a按列方式存儲數據,因此除法將每列除以dev的結果。

+0

你的答案似乎完美地工作馬克。我不知道我的R輸出發生了什麼。如果我可以使用你的答案,如果「a」來自一個列表,「dev」是一個向量,你會否認?感謝您的回答。 – NuValue

+0

@ user3183321這個答案取決於'a'是一個矩陣。你如何做到這一點取決於列表的結構。 –