gpt4 book ai didi

r - 有很多类别的 ifelse 语句

转载 作者:行者123 更新时间:2023-12-04 12:19:16 25 4
gpt4 key购买 nike

我有一个带有数字的向量,如下所示:c(52.2,76.3,16.1,85.8)。我想确定每个值位于 seq(15,90,5) 中的哪个区间,并创建一个新向量,其中包含指示特定区间/类别的数字。

下面的函数可以工作,但看起来很麻烦,所以希望有人能帮助我使它更高效/简洁。

testfun <- function(x){
ifelse(x>=15 & x<20, 1, ifelse(x>=20 & x<25, 2, ifelse(x>=25 & x<30, 3,
ifelse(x>=30 & x<35, 4, ifelse(x>=35 & x<40, 5, ifelse(x>=40 & x<45, 6,
ifelse(x>=45 & x<50, 7, ifelse(x>=50 & x<55, 8, ifelse(x>=55 & x<60, 9,
ifelse(x>=60 & x<65, 10, ifelse(x>=65 & x<70, 11, ifelse(x>=70 & x<75, 12,
ifelse(x>=75 & x<80, 13, ifelse(x>=80 & x<85, 14, ifelse(x>=85 & x<90, 15,
ifelse(x>=85 & x<90, 16, NA))))))))))))))))}

> testfun(c(52.2,76.3,16.1,85.8))
[1] 8 13 1 15

非常感谢!

附言。随意编辑这个问题/标题

最佳答案

使用剪切并分配标签:

x <- c(52.2,76.3,16.1,85.8 , 90 )    
cut( x , breaks = seq(15,90,5) , labels = c(1:15) , include.lowest = TRUE )
#[1] 8 13 1 15
#Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

关于r - 有很多类别的 ifelse 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081810/

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