smc*_*mci 21 r subset logical-operators
为什么不subset()兼容&&两个条件的逻辑和运算符?
> subset(tt, (customer_id==177 && visit_date=="2010-08-26"))
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)
但它们各自独立工作:
> subset(tt, customer_id==177)
> subset(tt, visit_date=="2010-08-26")
Run Code Online (Sandbox Code Playgroud)
(想避免使用大型临时变量 - 我的数据集很大)
And*_*rie 26
从帮助页面Logical Operators可访问?"&&":
&和&&表示逻辑AND和| 和|| 表示逻辑OR.较短的形式以与算术运算符大致相同的方式执行元素比较.较长的形式从左到右评估仅检查每个向量的第一个元素.评估仅在确定结果之前进行.较长的形式适用于编程控制流程,通常在if子句中是优选的.
(R版本2.13-0)
换句话说,使用时subset,请使用单曲&.
以下是差异的说明:
c(1,1,0,0) & c(1,0,1,0)
[1] TRUE FALSE FALSE FALSE
c(1,1,0,0) && c(1,0,1,0)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
如果与其他编程范例相比看起来古怪,请记住R需要提供运算符的矢量化形式.
在R中,你实际上想要&运算符而不是&&成对的AND运算,&&它是按位AND.相同的规则适用于OR:如果要执行逻辑OR而不是按位OR,则需要|运算符.
| 归档时间: |
|
| 查看次数: |
20282 次 |
| 最近记录: |