gpt4 book ai didi

r - 将连续数值转换为由间隔定义的离散类别

转载 作者:行者123 更新时间:2023-12-03 11:45:28 25 4
gpt4 key购买 nike

我有一个带有连续数字变量的数据框,以月为单位的年龄(age_mnths)。我想创建一个新的离散变量,年龄类别基于年龄间隔。

# Some example data
rota2 <- 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函数,但我无法处理它来离散化/分类。

最佳答案

如果有理由不想使用 cut那我不明白为什么。 cut会很好地完成你想做的事情

# Some example data
rota2 <- data.frame(age_mnth = 1:170)
# Your way of doing things to compare against
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")))))

# Using cut
rota2$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)

关于r - 将连续数值转换为由间隔定义的离散类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com