Использование data.table
:
library(data.table)
setDT(df)
df[,
Comment := ifelse(seq_len(.N) <= 3, 'OK', 'Discard'),
.(Store, RTU, rleid(Temperature))
][]
# Time Store RTU Temperature Comment
# 1: 1 1000 1 54 OK
# 2: 2 1000 1 54 OK
# 3: 3 1000 1 54 OK
# 4: 4 1000 1 54 Discard
# 5: 5 1000 1 54 Discard
# 6: 6 1000 1 56 OK
# 7: 7 1000 1 57 OK
# 8: 8 1000 1 50 OK
# 9: 9 1000 1 50 OK
#10: 10 1000 1 50 OK
#11: 11 1000 1 50 Discard
#12: 12 1000 1 50 Discard
#13: 13 1000 1 61 OK
#14: 14 1000 1 61 OK
#15: 15 1000 1 61 OK
#16: 16 1000 1 61 Discard
#17: 17 1000 1 61 Discard
#18: 18 1000 1 58 OK