Подмножество фрейма данных R на основе двух условий в двух разных столбцах - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть фрейм данных (df), который выглядит следующим образом:

c1  c2    c3

100 FALSE  a

110 FALSE  b

120 FALSE  c

130 FALSE  d

150 FALSE  e

160 FALSE  f

170 FALSE  g

180 FALSE  h

190 TRUE   i

200 FALSE  l

210 FALSE  m

220 FALSE  n

230 FALSE  o

240 FALSE  p

250 FALSE  q

260 FALSE  r

270 FALSE  s

Я хотел бы выбрать определенное количество строк, которые предшествуют и которые следуют за строкой с «TRUE» в столбцес2.Например, я хочу, чтобы строки имели в c1 значения 190 (строка с ИСТИНОЙ) минус 40 или 190 плюс 40.

Ожидаемый результат:

150 FALSE  e

160 FALSE  f

170 FALSE  g

180 FALSE  h

190 TRUE   i

200 FALSE  l

210 FALSE  m

220 FALSE  n

230 FALSE  o

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете сначала получить 'base' c1, используя

base <- df[which(df$c2), 'c1']


Затем снова используйте which, чтобы получить нужные строки.

out <- df[which((df$c1 <= base + 40) & (df$c1 >= base - 40)),]


Надеюсь, это поможет: -)

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