2013-03-14 73 views
4

我得到一个比特通过使用逻辑运算符的短和长形式中R.逻辑运算符 - 短(关系)与长(矢量)形成

混淆

如果我有下列值

A <- FALSE 
B <- TRUE 
X <- 3 
Y <- 2 

我想评价NOT(A)OR NOT(B) X <Ÿ

我希望FALSE给出的参数

这是表达我已经找到了R评价这一所以它返回FALSE如我所料:

!A & X < Y || !B & X < Y 

我可以消除重复X < Y比较呢?

+4

...你真的应该使用更多的圆括号使你正在试图做清楚什么。 – Dason 2013-03-14 16:08:27

+0

@Dason是的,我现在知道NPE的感谢。适当地惩罚! – 2013-03-14 16:11:50

回答

5

你的意思是:

> (!A || !B) && X < Y 
[1] FALSE 

+0

啊哈。确切地说,谢谢。括号。该死,我应该知道更好!我会尽快接受时钟。谢谢。 – 2013-03-14 16:08:04

2

简短的形式给你一个向量。
长表单给你一个单一的值。 比较:

x <- c(TRUE, TRUE, FALSE) 
    y <- c(TRUE, FALSE, FALSE) 


    X && Y 
    X & y 

    x || y 
    x | y 
+0

+1非常好的短和长表单工作方式的例子,谢谢。 – 2013-03-14 16:18:11

1

另一种可能性:

!(A * B) && X < Y 
+0

+1在@NPE上保存附加角色! :-) – 2013-03-14 16:18:47