У меня есть большой набор данных, который разбит на различные зоны. Я хотел бы отметить, когда все сэмплы из данной зоны превышают заданный порог. Если все выборки для данной Зоны выше заданного порога, мне нужно назначить 1 Значение в отдельном столбце (и назначить 2 Значение, если не все выборки в данной Зоне выше заданного порога).
Я понимаю, что могу использовать функцию group_by в dplyr, чтобы назначать зоны группам, и что мне по сути нужно преобразовать данные в новый столбец, но не знаю, как назначить правило, которое зависит от всех выборок. от группы, отвечающей определенному условию (в данном случае превышающему заданный порог). Ниже приведен пример фрейма данных с пороговым значением 1.
Zone Value
1 Zone1 1
2 Zone1 2
3 Zone1 2
4 Zone1 1
5 Zone1 2
6 Zone1 4
7 Zone2 3
8 Zone2 1
9 Zone2 2
10 Zone2 2
11 Zone2 1
12 Zone2 1
13 Zone2 2
14 Zone3 1
15 Zone3 2
16 Zone3 1
17 Zone3 0
18 Zone3 1
19 Zone3 1
20 Zone3 0
21 Zone3 0
Ниже приведен желаемый результат. Зоны 1 и 2 имеют New. Значения 1, поскольку все выборки из этих групп превышают пороговое значение 1, всей Зоне 3 присваивается значение 2, поскольку некоторые выборки содержат значения меньше 1.
Zone Value New.Value
1 Zone1 1 1
2 Zone1 2 1
3 Zone1 2 1
4 Zone1 1 1
5 Zone1 2 1
6 Zone1 4 1
7 Zone2 3 1
8 Zone2 1 1
9 Zone2 2 1
10 Zone2 2 1
11 Zone2 1 1
12 Zone2 1 1
13 Zone2 2 1
14 Zone3 1 2
15 Zone3 2 2
16 Zone3 1 2
17 Zone3 0 2
18 Zone3 1 2
19 Zone3 1 2
20 Zone3 0 2
21 Zone3 0 2