Я хочу заменить повторяющиеся значения в моем фрейме данных на 0. Допускается некоторое количество повторений.
a<-c(1,2,3,4,4,4,5,5,5,5,5,9,9,150,220,220)
В случае, если допустимое количество повторений, скажем, 4. Ожидаемое решение должно выглядеть следующим образом:
a_new<-c(1,2,3,4,4,4,0,0,0,0,0,9,9,150,220,220)
Более 4 раз повторяющиеся значения заменяются на 0.
Использование функции
b<-rle(a)
Я могу определить количество повторений
Run Length Encoding
lengths: int [1:8] 1 1 1 3 5 2 1 2
values : num [1:8] 1 2 3 4 5 9 150 220
И заменить его на 0
b$values[b$lengths>4]<-0
Run Length Encoding
lengths: int [1:8] 1 1 1 3 5 2 1 2
values : num [1:8] 1 2 3 0 0 9 150 220
Вопрос состоит в том, как вставить повторения в этом случае 0 обратно в данные.