我一直在阅读&和和&&在R。
据我所知,与其他语言不同,&用于按位运算和&&用于 height>等条件150&&高度<在R中,两者都是针对后者的。对于按位,还有其他功能,例如 bitwAnd(a,b)
然而,&和/或之间的区别是什么?和&&根据我的阅读,我所理解的是" 较长的形式(&&& I guess)适用于编程控制流程,通常首选if if条款"
然而,我正在尝试一种似乎有效的方法而另一方似乎并没有?
> which( (df$Cost > 14789) & (df$Cost < 14791) )
[1] 29989 69576 116578 137242 160072
> which( (df$Cost > 14789) && (df$Cost < 14791) )
integer(0)
答案 0 :(得分:0)
&
以与算术运算符非常相同的方式执行元素比较。
&&
从左到右评估每个向量的第一个元素。评估仅在确定结果之前进行。
所以在你的代码中
> which( (df$Cost > 14789) & (df$Cost < 14791) )
[1] 29989 69576 116578 137242 160072
> which( (df$Cost > 14789) && (df$Cost < 14791) )
integer(0)
第一个语句按元素计算向量,因此得到结果。 第二个只是向量的第一个元素。