используя R Я пытаюсь отфильтровать свой фрейм данных в соответствии с некоторыми аргументами.
Вот кадр данных:
Groups_name col1 col2
group1 3 4
group1 1 1
group1 1 1
group2 1 1
group3 3 7
group3 1 1
group4 3 3
group4 1 1
и по группам я хочу сохранить только группы, которые содержат хотя бы одну строку, где col1 > 1
и где col1 == col2
или col1 == col2+-2
Здесь я должен получить:
Groups_name col1 col2
group1 3 4
group1 1 1
group1 1 1
group4 3 3
group4 1 1
как видите, я сохранил group1
, потому что в первом ряду col1 >1
и col1 (3) = col2 +1 (4)
Я также держу group 3
, потому что col1 >1
и col1 (3) == col2 (3)
но group 1
был удален, потому что col1
что not > 1
И я также удалил group 3
, потому что даже если col1 (3) > 1
, col1 (3)
не равен 7 +
или - 2
(поэтому не равен 5,6,7,8
или 9
)
С этого момента я попытался:
tab %>%
group_by(Groups_name) %>%
filter(all(col1 == col2,col2-2,col2+2)) %>%
filter(any(col1 > 1))
Спасибо за вашу помощь.