2015-07-16 1 views
4

Я пытаюсь изучить R и понять, как работает символ &. Я понимаю, что это означает «и».Использование & in R (например, 3 <(5 & 9))

Когда я пытаюсь 3 < (5 & 4) Я получаю FALSE? Я ожидал TRUE. Использую ли я & неправильный путь?

+1

Это может представлять интерес для вас тоже, в свете ответов: HTTP: // StackOverflow. com/a/21669446/496803 – thelatemail

ответ

6

В R TRUE имеет значение числа 1 в вашем выражении арифметического, следовательно:

3 < (5 & 4) 
3 < TRUE 
3 < 1 

которого FALSE

Вы можете убедить себя, что R относится к TRUE в 1 с следующим фрагментом коды:

> x <- c(-3:3) 
> x 
[1] -3 -2 -1 0 1 2 3 
> x == TRUE 
[1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE 
+3

И изначально он по существу выполняет 'as.logical (5)' и 'as.logical (4)', которые оба возвращают 'TRUE' – thelatemail

+0

Как отметил в своем ответе @nograpes, вы, вероятно, намеревались сделать все (3

3

Пробуйте использовать:

3 < c(4,5) 

Таким образом, он будет проверить как 4 и 5.

ответ я получаю:

TRUE TRUE 
5

Я думаю, что вы имели в виду ваше заявление было то, как мы сказали бы в Английский «На 3 меньше 5 и 4?». Но это не то, что означает 3 < (5 & 4). Как объясняется в других ответах, R пытается выяснить, что (5 & 4) означает сначала, а затем пытается выяснить, что означает, что значение 3 будет меньше TRUE. Я думаю, что вы хотите что-то вроде:

(3 < 4) & (3 < 5) 

Другой способ сказать, что это было бы:

all(3 < c(4,5))