我有以下資料
> dput(DF)
structure(list(NAME = c("Gait", "Roc", "Bo", "Hernd",
"Bet", "Oln", "Gai", "Rock", "Mil", "Arli", "Re", "Fred", "Ro",
"Rock", "Wheat", "Germa", "Rock", "Nort", "Arli",
"Rockv"), AGE = c(33, 43, 37, 45, 44, 35, 22, 30,
38, 23, 45, 43, 67, 43, 28, 47, 16, 29, 22, 31)),
class = "data.frame", row.names = c(NA, -20L))
我想按特定間隔對資料進行分組,以便第一組從AGE0-19 開始,其余組按 10 年間隔進行分組,因此 20-29、30-39 等到最大值AGE。
期望的輸出是:
NAME AGE GROUP
1 Gait 33 3
2 Roc 43 4
3 Bo 37 3
4 Hernd 45 4
5 Bet 44 4
6 Oln 35 3
7 Gai 22 2
8 Rock 30 3
9 Mil 38 3
10 Arli 23 2
11 Re 45 4
12 Fred 43 4
13 Ro 67 6
14 Rock 43 4
15 Wheat 28 2
16 Germa 47 4
17 Rock 16 1
18 Nort 29 2
19 Arli 22 2
20 Rockv 31 3
請記住,這只是資料的樣本,實際資料更大。我的目標是為第 1 組設定一個奇數間隔,而其余組都在 10 年的相同范圍內。
uj5u.com熱心網友回復:
您可以cut根據定義的間隔使用和創建組。
transform(DF, GROUP = cut(AGE, c(0, seq(19, max(AGE) 10, 10)), labels = FALSE))
# NAME AGE GROUP
#1 Gait 33 3
#2 Roc 43 4
#3 Bo 37 3
#4 Hernd 45 4
#5 Bet 44 4
#6 Oln 35 3
#7 Gai 22 2
#8 Rock 30 3
#9 Mil 38 3
#10 Arli 23 2
#11 Re 45 4
#12 Fred 43 4
#13 Ro 67 6
#14 Rock 43 4
#15 Wheat 28 2
#16 Germa 47 4
#17 Rock 16 1
#18 Nort 29 2
#19 Arli 22 2
#20 Rockv 31 3
這里的關鍵部分是我們如何創建間隔c以及seq定義組。
c(0, seq(19, max(DF$AGE) 10, 10))
#[1] 0 19 29 39 49 59 69
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/419353.html
標籤:
