У меня есть этот фрейм данных:
> set.seed(100)
> df <- data.frame(Age = sample(18:70, 30, replace = TRUE),
Sex = sample(0:1, 30, replace =TRUE),
stringsAsFactors = FALSE)
> df
Age Sex
1 34 0
2 31 1
3 47 0
4 20 1
5 42 1
6 43 1
7 61 0
8 37 1
9 46 1
10 27 0
11 51 0
12 64 1
13 32 1
14 39 1
15 58 1
16 53 0
17 28 1
18 36 1
19 37 0
20 54 0
21 46 0
22 55 0
23 46 0
24 57 0
25 40 1
26 27 0
27 58 0
28 64 0
29 47 1
30 32 0
И я хочу создать еще один столбец с возрастным диапазоном для каждого возраста с этими диапазонами:
> df_range <- data.frame(Age_Range = c("Lower than 26", "26 to 30", "31 to 35", "36 to 40", "41 to 45", "46 to 50", "51 to 55", "56 to 60", "61 to 65", "More than 65"),
stringsAsFactors = FALSE)
> df_range
Age_Range
1 Lower than 26
2 26 to 30
3 31 to 35
4 36 to 40
5 41 to 45
6 46 to 50
7 51 to 55
8 56 to 60
9 61 to 65
10 More than 65
Я знаю, что могу сделать это, создав огромную таблицу, в которой первый столбец имеет все возможные возрасты (например, от -1000 до 1000, чтобы избежать выбросов), а второй столбец - диапазон для каждого возраста, также я мог бы это сделать с ifelse()
для каждого диапазона. Однако разве нет более эффективного способа? Может быть, что-то вроде ИСТИННОГО VLOOKUP в Excel?