После группировки по «группам» получите «значение», соответствующее значению «время» 2013 года, и используйте его для деления столбца «значение»
library(data.table)
dt1[, value := value/value[time == 2013], by = groups]
dt1
# groups time value
# 1: A 2011 0.9479916
# 2: A 2012 0.9998500
# 3: A 2013 1.0000000
# 4: A 2014 1.0021978
# 5: A 2015 0.9895577
# 6: B 2011 0.9927946
# 7: B 2012 0.9718649
# 8: B 2013 1.0000000
# 9: B 2014 1.0583339
#10: B 2015 1.0530045
или с помощью match
dt1[, value := value/value[match(2013, time)], by = groups]
данные
dt1 <- structure(list(groups = c("A", "A", "A", "A", "A", "B", "B",
"B", "B", "B"), time = c(2011L, 2012L, 2013L, 2014L, 2015L, 2011L,
2012L, 2013L, 2014L, 2015L), value = c(97.66647, 103.00917, 103.02462,
103.25105, 101.94881, 97.69248, 95.63296, 98.4015, 104.14164,
103.61722)), class = c("data.table", "data.frame"), row.names = c(NA,
-10L))