I am trying to carry forward the last observation with a large data.table by group with a limit of 2. There are plenty of complex solutions out here but none of them seem to incorporate all 3 elements: an na.locf-like function with a maximum limit, by groups, in data.table.
My data looks like:
df <- structure(list(country = c("USA", "USA", "USA", "USA", "USA",
"FR", "FR", "FR", "FR", "FR"), values = c(2, 1, NA, NA, NA, 2,
1, 2, NA, NA)), class = c("data.table", "data.frame"), row.names = c(NA,
-10L))
country values
1: USA 2
2: USA 1
3: USA NA
4: USA NA
5: USA NA
6: FR 2
7: FR 1
8: FR 2
9: FR NA
10: FR NA
I want it to look like this:
country values
1 USA 2
2 USA 1
3 USA 1
4 USA 1
5 USA NA
6 FR 2
7 FR 1
8 FR 2
9 FR 2
10 FR 2