Here's a data.table solution:
R> (data.table(Data)[,index := 1:.N, by = "agegp,alcgp"])
agegp alcgp tobgp ncases ncontrols index
1: 25-34 0-39g/day 0-9g/day 0 40 1
2: 25-34 0-39g/day 10-19 0 10 2
3: 25-34 0-39g/day 20-29 0 6 3
4: 25-34 0-39g/day 30+ 0 5 4
5: 25-34 40-79 0-9g/day 0 27 1
6: 25-34 40-79 10-19 0 7 2
7: 25-34 40-79 30+ 0 7 3
8: 25-34 40-79 20-29 0 4 4
9: 25-34 80-119 0-9g/day 0 2 1
10: 25-34 80-119 30+ 0 2 2
library(data.table)
##
Data <- read.table(
text = " agegp alcgp tobgp ncases ncontrols
1 25-34 0-39g/day 0-9g/day 0 40
2 25-34 0-39g/day 10-19 0 10
3 25-34 0-39g/day 20-29 0 6
4 25-34 0-39g/day 30+ 0 5
5 25-34 40-79 0-9g/day 0 27
6 25-34 40-79 10-19 0 7
8 25-34 40-79 30+ 0 7
7 25-34 40-79 20-29 0 4
9 25-34 80-119 0-9g/day 0 2
11 25-34 80-119 30+ 0 2",
header = TRUE,
stringsAsFactors = FALSE
)