gpt4 book ai didi

r - 使用循环/其他任何东西来写一串间隔(向量)

转载 作者:行者123 更新时间:2023-12-02 06:36:13 24 4
gpt4 key购买 nike

我以艰难的方式完成了这项工作,并且想知道您将如何使用循环/更快的方法来完成它。我正在为级别创建标签以在剪辑语句中使用,与年龄组一起使用。

levels(age_group) <- ("<10","10-19","20-29","30-39","40-49","50-59","60-69","70-79","80-89","90-99","100-109",
"110-119","120-129","130+")

有没有人对如何做到这一点有什么好的想法?可以手动添加较少的“<10”和“130+”,但我相信有一种更快的方法来完成剩下的工作。

谢谢

最佳答案

最好使用 cut 生成的级别,因为您当前的间隔没有定义包括哪一端。

s <- c(-Inf,seq(10,130,10),Inf)
levels(cut(s,s))
# [1] "(-Inf,10]" "(10,20]" "(20,30]" "(30,40]" "(40,50]"
# [6] "(50,60]" "(60,70]" "(70,80]" "(80,90]" "(90,100]"
# [11] "(100,110]" "(110,120]" "(120,130]" "(130, Inf]"

如果你必须使用你当前的时间间隔,你可以使用这个简单的函数:

strInterval <- function(start, end, by) {
s <- seq(start, end, by)
i <- paste(head(s,-1), s[-1]-1, sep="-")
c(paste0("<",start), i, paste0(end,"+"))
}
strInterval(10,130,10)
# [1] "<10" "10-19" "20-29" "30-39" "40-49" "50-59" "60-69"
# [8] "70-79" "80-89" "90-99" "100-109" "110-119" "120-129" "130+"

关于r - 使用循环/其他任何东西来写一串间隔(向量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241476/

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