Как вернуть логический вектор "y" для двух разных условий без использования циклов - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу создать логический вектор y, который возвращает TRUE для следующих условий:

(1) For x1 >= 10, return value TRUE when x2 > 85
(2) For x1 < 10, return value TRUE when x2 > 75
Example dataset 

x1 = c(3,4,1,7,2,5,3,7,11,22,64,23,46,75,23,5,3)
x2 = c(43,56,87,54,77,65,87,56,76,79,70,77,78,79,85,54,67)
data = data.frame(x1,x2)

У данных, с которыми я работаю, больше, чем представлено в примере,Я имею дело с 300 наблюдениями, но логика работает так же.

Я создал подмножество x1> = 10, x1 <10, затем нашел значения, которые удовлетворяют x2> 85. Затем были созданы два условия, которые удовлетворяют условиям.

over10 = data$x1 >= 10
less10 = data$x1 < 10

cond1 = over10[data$x2 > 85]
cond2 = less10[data$x1 < 75]

y = cond1 || cond2

Я действительно надеялся получить что-то вроде:

y = True,False,True,True,...

Но я получил:

y = TRUE

1 Ответ

0 голосов
/ 08 февраля 2019
with(data, (x1 >= 10 & x2 > 85) | (x1 < 10 & x2 > 75))

#[1] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
#[14] FALSE FALSE FALSE FALSE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...