Вот базовая версия R:
df = data_frame(ID = c(1124, 1123))
expand.grid(ID = df$ID, Age = 0:5)
## ID Age
## 1 1124 0
## 2 1123 0
## 3 1124 1
## 4 1123 1
## 5 1124 2
## 6 1123 2
## 7 1124 3
## 8 1123 3
## 9 1124 4
## 10 1123 4
## 11 1124 5
## 12 1123 5
Это отсортировано иначе, чем результат tidyr::expand
.
РЕДАКТИРОВАТЬ
As@thelatemail предложил, вы можете сделать следующее, чтобы избежать переименования df
expand.grid(c(Age=list(0:5), df))
или
merge(df, list(Age=0:5))
РЕДАКТИРОВАТЬ 2
Здесьa data.table
пример:
library(data.table)
setDT(df) # Convert df to a data.table.
df[, do.call(CJ, list(ID = ID, Age = 0:5))]
Для больших наборов данных может потребоваться сравнить различные методы.