У меня большой DataFrame, который выглядит следующим образом:
ID GroupID a b ...
1 001 2 3
2 001 2 2
3 001 2 2
4 001 2 0
5 001 0 1
6 002 1 1
7 002 2 1
8 002 0 1
9 002 0 1
10 002 2 1
11 002 3 0
...
Теперь я хочу установить для всей группы значение NA, когда в этой группе одно значение превышает 75% (потому что я предполагаю, чтозначения ошибочны).
Результат должен выглядеть следующим образом:
ID GroupID a b ...
1 001 NA 3
2 001 NA 2
3 001 NA 2
4 001 NA 0
5 001 NA 1
6 002 1 NA
7 002 2 NA
8 002 0 NA
9 002 0 NA
10 002 2 NA
11 002 3 NA
...
Я знаю, это довольно конкретный вопрос, но, возможно, вы мне поможете.
В случае, если вам нужен вышеуказанный набор дат:
ID <- c(1:11)
GroupID <- c('001','001','001','001','001','002','002','002','002','002','002')
a <- c(2,2,2,2,0,1,2,0,0,2,3)
b <- c(3,2,2,0,1,1,1,1,1,1,0)
DF <- data.frame(ID, GroupID, a,b)