Вы можете использовать switch
:
lengths <- function(vector, condition) {
switch(condition,
ceiling(length(vector)/2),
length(vector),
length(vector)*2,
length(vector)*+10)
}
Эта функция обеспечивает поведение, более похожее на ваш пример кода:
lengths <- function(vector, condition) {
switch(as.character(condition),
`1`=ceiling(length(vector)/2),
`2`=length(vector),
`3`=length(vector)*2,
length(vector)*+10)
}
... и эта функция будет определяться значениемиз condition
:
condition <- 1
lengths <- switch(as.character(condition),
`1`=function(vector) ceiling(length(vector)/2),
`2`=function(vector) length(vector),
`3`=function(vector) length(vector)*2,
function(vector) length(vector)*+10)
lengths
# function(vector) ceiling(length(vector)/2)