2012-07-03 22 views
0

我有2個向量和一個數字。創建布爾向量的兩個條件

a <- rnorm(40,10,4) 
d <- rep(0,length(a) 
filling_limit <- 8 

現在,我想給我的信息有40 * 1布爾向量(has.room)如果兩個條件都滿足:的

has.room <- a > 0 && d < filling_limit 

,而不是40倍TRUE返回一個向量我得到的只是一個單個TRUE。 這是什麼原因?如果你想知道零向量:這個東西是循環的一部分,並且d會在一段時間內改變。謝謝!

回答

2
has.room <- a > 0 & d < filling_limit 

從幫助頁面邏輯運算符: &&&表示邏輯與和|||表示邏輯或。 較短的形式以與算術運算符幾乎相同的方式執行元素比較。較長的形式從左到右進行評估,僅檢查每個矢量的第一個元素。評估僅進行到結果確定。

+1

+1的解釋。您可能會指出您引用的幫助頁面可以通過'?「&&」'或'?Logic'進行訪問。 –

3

嘗試:

has.room <- a > 0 & d < filling_limit 
+0

我也建議OP檢查'?「&」' – Dason