2012-07-03 25 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