У меня есть фрейм данных, и я хотел бы создать столбец фрейма данных на основе группировки в другом столбце.Группировка должна быть с шагом 50 в столбце, а метка должна быть средним числом в номерах групп.Я демонстрирую это здесь на воспроизводимом примере.
Вот кадр данных
das <- data.frame(val=1:27,
weigh=c(20,25,37,38,50,52,56,59,64,68,69,70,75,76,82,85,90,100,109,150,161,178,181,179,180,201,201))
val weigh
1 1 20
2 2 25
3 3 37
4 4 38
5 5 50
6 6 52
7 7 56
8 8 59
9 9 64
10 10 68
11 11 69
12 12 70
13 13 75
14 14 76
15 15 82
16 16 85
17 17 90
18 18 100
19 19 109
20 20 150
21 21 161
22 22 178
23 23 181
24 24 179
25 25 180
26 26 201
27 27 201
Желаемый результат будет
val weigh label
1 1 20 45
2 2 25 45
3 3 37 45
4 4 38 45
5 5 50 45
6 6 52 45
7 7 56 45
8 8 59 45
9 9 64 45
10 10 68 45
11 11 69 45
12 12 70 45
13 13 75 95
14 14 76 95
15 15 82 95
16 16 85 95
17 17 90 95
18 18 100 95
19 19 109 95
20 20 150 145
21 21 161 145
22 22 178 195
23 23 181 195
24 24 179 195
25 25 180 195
26 26 201 195
27 27 201 195
Здесь 45 вычисляется по 20+ (20 + 50) / 2 = 45, где 20 - это то место, где он начинается, а 20 + 50 = 70 - то, где эта группа должна остановиться.А метка - это среднее число от 20 до 70, равное 45.
Аналогично с другими метками
70+(70+50)/2= 95
120 + (170)/2= 145
170 + (220)/2 = 195
Я новичок в R и пробовал посмотреть многие источники здесь, но я не могне найти ничего, что будет делать что-то вроде этого.Самое близкое, что я мог найти, это группировать как это, используя cut2
df %>% mutate(label = as.numeric(cut2(weigh, g=5)))