Мы можем использовать .GRP
из data.table
после группировки по «Дата», «Местоположение»
library(data.table)
setDT(df)[, Combo := .GRP, .(Date, Location)]
df
# Date Location Var1 Var2 Combo
#1: 2018 Ohio A 1 1
#2: 2018 Ohio B 2 1
#3: 2018 Arizona C 3 2
#4: 2018 Arizona D 4 2
#5: 2018 Nebraska E 5 3
#6: 2017 Nebraska F 6 4
#7: 2017 New Mexico G 7 5
#8: 2016 Idaho H 8 6
<час> Или используя rleid
setDT(df)[, Combo := rleid(Date, Location)]
И
df <- mutate(df,Combo = as.integer(interaction(Date,Location,drop = TRUE)))
и
df <- mutate(df,Combo = as.integer(factor(paste0(Date,Location))))
являются опциями, хотя они упорядочивают уровни не в том порядке, в котором они появляются в данных.