R IF-ELSE函数在简单情况下工作,但我的扩展函数不工作

R IF-ELSE函数在简单情况下工作,但我的扩展函数不工作,r,R,我正在尝试创建函数来计算数字,并根据设置的条件将它们添加到类别中 我写了一个“愚蠢”的函数,有很多重复和行,可以在一个简单的情况下解决这个问题: # Findgroup (Everything manually typed out) # Purpose of function: #If 1 or 2: output A #If 3 or 4: output B #If 5 or 6: output random A/B (bonus if this can be balanced equally

我正在尝试创建函数来计算数字,并根据设置的条件将它们添加到类别中

我写了一个“愚蠢”的函数,有很多重复和行,可以在一个简单的情况下解决这个问题:

# Findgroup (Everything manually typed out)
# Purpose of function:
#If 1 or 2: output A
#If 3 or 4: output B
#If 5 or 6: output random A/B (bonus if this can be balanced equally over the dataset)
# Else output "error"
findGroup <- function(x){ if (x == 1) { 
  "A"
} else if (x == 2) {
  "A"
} else if  (x == 3) {
  "B"
} else if  (x == 4) {
  "B"
}else if  (x == 5) {
  sample(c("sA","sB"),1)
}else if  (x == 6) {
  sample(c("sA","sB"),1)
} else {
  "Error"
}}

# Brief test: All matches expectations
findGroup(1) # Returns A
findGroup(3) # Returns B
findGroup(5) # Samples
findGroup(7) # Returns Error
#Findgroup(所有内容均手动输入)
#职能的目的:
#如果1或2:输出A
#如果3或4:输出B
#如果5或6:输出随机A/B(如果可以在数据集上平均平衡,则为奖励)
#Else输出“错误”

findGroup使用%
中的
%检查多个值

findGroupNew <- function(x) { 
   if (x %in% 2:6) { 
    return("A")
  } else if (x %in% 10:16) {
    return("B")
  } else if (x %in% c(1, 9)) {
    return(sample(c("sA","sB"),1))
  } else {
    return("Error")
  }
}

findGroupNew(1)
#[1] "sB"
findGroupNew(3)
#[1] "A"
findGroupNew(11)
#[1] "B"
findGroupNew(7)
#[1] "Error"
findGroupNew
findGroupNew <- function(x) { 
   if (x %in% 2:6) { 
    return("A")
  } else if (x %in% 10:16) {
    return("B")
  } else if (x %in% c(1, 9)) {
    return(sample(c("sA","sB"),1))
  } else {
    return("Error")
  }
}

findGroupNew(1)
#[1] "sB"
findGroupNew(3)
#[1] "A"
findGroupNew(11)
#[1] "B"
findGroupNew(7)
#[1] "Error"