將連續數值轉換為由間隔定義的離散類別我有一個具有連續數值變量的數據框架,即以月份為單位的年齡(Age_Mnths)。我想做一個新的離散變量,基于年齡間隔的年齡類別。# Some example datarota2 <- data.frame(age_mnth = 1:170)我創造了ifelse基于過程(以下),但我相信有一個更優雅的解決方案的可能性。rota2$age_gr<-ifelse(rota2$age_mnth < 6, rr2 <- "0-5 mnths",
ifelse(rota2$age_mnth > 5 & rota2$age_mnth < 12, rr2 <- "6-11 mnths",
ifelse(rota2$age_mnth > 11 & rota2$age_mnth < 24, rr2 <- "12-23 mnths",
ifelse(rota2$age_mnth > 23 & rota2$age_mnth < 60, rr2 <- "24-59 mnths",
ifelse(rota2$age_mnth > 59 & rota2$age_mnth < 167, rr2 <- "5-14 yrs",
rr2 <- "adult")))))我知道有cut函數,但我無法處理它,因為我的目的是對其進行離散/分類。
2 回答

夢里花落0921
TA貢獻1772條經驗 獲得超6個贊
cut
cut
# Some example datarota2 <- data.frame(age_mnth = 1:170)# Your way of doing things to compare againstrota2$age_gr<-ifelse(rota2$age_mnth <6,rr2<-"0-5 mnths", ifelse(rota2$age_mnth>5&rota2$age_mnth<12,rr2<-"6-11 mnths", ifelse(rota2$age_mnth>11&rota2$age_mnth<24,rr2<-"12-23 mnths", ifelse(rota2$age_mnth>23&rota2$age_mnth<60,rr2<-"24-59 mnths", ifelse(rota2$age_mnth>59&rota2$age_mnth<167,rr2<-"5-14 yrs", rr2<-"adult")))))# Using cutrota2$age_grcut <- cut(rota2$age_mnth, breaks = c(-Inf, 6, 12, 24, 60, 167, Inf), labels = c("0-5 mnths", "6-11 mnths", "12-23 mnths", "24-59 mnths", "5-14 yrs", "adult"), right = FALSE)

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
rota2$age_gr<-c( "0-5 mnths", "6-11 mnths", "12-23 mnths", "24-59 mnths", "5-14 yrs", "adult")[ findInterval(rota2$age_mnth , c(-Inf, 5.5, 11.5, 23.5, 59.5, 166.5, Inf) ) ]
- 2 回答
- 0 關注
- 756 瀏覽
添加回答
舉報
0/150
提交
取消