2016-05-04 42 views
2

我有矩陣m和向量v1。我想將每行的元素與我的向量v1的相應元素進行比較,以查看<是否爲一個數字。我嘗試過:元素在矩陣的第i行「<=」vecotor的第i個元素

apply(m,1,function(i) i <= v1) 

但最終比較每行元素與整個v1向量,這不是我想要的。整行應該比較v1的一個元素一行到v1的一個元素。

set.seed(20) 
matrix(sort(sample(50,25)),nrow=5) 
v1 <- c(16,11,38,41,29) 

注意每行中的元素進行排序,因此,如果在第i行例如在「>」的比較的第四元素評估爲TRUE所有元素1:4該行會同樣地進行評價的。

與v1比較的第1行到第3行的期望結果應評估爲TTTFF,對於第二行TTFFFF,因爲只有3和11是< = 11,第三行結果爲TTTTF。

+1

是它不'米<= v1'? – SymbolixAU

+0

@Symbolix - 不錯,簡單,矩陣按列順序填充,所以基本比較應該沒問題。 – thelatemail

+0

@thelatemail - 感謝澄清;)試圖找出**爲什麼**這是錯的... – SymbolixAU

回答

3

作爲你的矢量的長度是一樣的在矩陣的行數,一個簡單的比較將在這裏工作

set.seed(20) 
m <- matrix(sort(sample(50,25)),nrow=5) 
v1 <- c(16,11,38,41,29) 

m <= v1 


#  [,1] [,2] [,3] [,4] [,5] 
# [1,] TRUE TRUE TRUE FALSE FALSE 
# [2,] TRUE TRUE FALSE FALSE FALSE 
# [3,] TRUE TRUE TRUE TRUE FALSE 
# [4,] TRUE TRUE TRUE TRUE FALSE 
# [5,] TRUE TRUE TRUE FALSE FALSE 
相關問題