[英]How to recode continuous age in age categories and create a new variable at the same time
我有一個年齡變量,我需要將其重新編碼為類別。 我已經看到了這兩個問題,但答案似乎只在 memory 中創造了一些東西。 當我打開 data.table 時,新的分類變量不存在。 我看不到它,也無法使用它進行子集化。 但我可以在它上面運行一個頻率。 但我需要它成為自己的變量。
如何將連續變量轉換為因子並在之后獲得有形變量? 或者,我如何將 memory 中正在創建的內容變為現實?
`setDT(LSSCM)[client_age <17, agegroup := "0-17"]`
`LSSCM[client_age >=18 & client_age <=24, agegroup := "18-24"]`
`LSSCM[client_age >=25 & client_age <=30, agegroup := "25-30"]`
`LSSCM[client_age >=31 & client_age <=39, agegroup := "31-39"]`
`LSSCM[client_age >=40 & client_age <=54, agegroup := "40-54"]`
`LSSCM[client_age >=55 & client_age <=64, agegroup := "55-64"]`
`LSSCM[client_age >=65 & client_age <=75, agegroup := "65-75"]`
`LSSCM[client_age >=76, agegroup := "76+"]`
LSSCM$age_cat <- case_when(LSSCM$client_age <= 17 ~ '0-17',
between(LSSCM$client_age, 18, 24) ~ '18-24',`
between(LSSCM$client_age, 25, 30) ~ '25-30',`
between(LSSCM$client_age, 31, 39) ~ '31-39',`
between(LSSCM$client_age, 40, 54) ~ '40-54',`
between(LSSCM$client_age, 55, 64) ~ '55-64',`
between(LSSCM$client_age, 65, 75) ~ '65-75',`
LSSCM$client_age >= 76 ~ '76+')`
只需將首選解決方案的結果分配到 data.frame 中的列中。 例如:
df$agegroups<-cut(df$ages, breaks=c(20, 30, 40, 50), right = FALSE)
例如:
df<-data.frame(age = c(55, 60, 65, 70, 75, 80, 85, 90, 95))
df
age
1 55
2 60
3 65
4 70
5 75
6 80
7 85
8 90
9 95
df$age_cat<-cut(df$age, breaks=c(0,17,24,30,39,54,64,75), right = FALSE)
df
age age_cat
1 55 [54,64)
2 60 [54,64)
3 65 [64,75)
4 70 [64,75)
5 75 <NA>
6 80 <NA>
7 85 <NA>
8 90 <NA>
9 95 <NA>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.