library(tidyverse)
(exmpldf <- tribble(~x1,~x2,~x3,~price,~datenum,~dupflag,
1,1,1,1000,1,TRUE,
1,1,1,2000,2,TRUE,
1,1,1,2100,3,TRUE,
2,2,2,1500,2,FALSE,
3,3,3, 900,4,FALSE,
4,4,4, 1300,2,TRUE,
4,4,4, 1350,4,TRUE))
group_by(exmpldf,
x1,x2,x3) %>% mutate(
r=ifelse(dupflag,
row_number(),
NA))