如何根据family
类正确编写案例陈述。我目前按字符串匹配,但是这样做的正确方法是什么。
gigl <- function(family = poisson()){
if (family == "binomial"){
print(1)}
else if(family == "guassian"){
print(2)}
else {
print(3)}
}
输出应为
> gigl(family = poisson())
3
> gigl(family = binomial())
1
> gigl(family = gaussian())
2
答案 0 :(得分:2)
您可以使用switch语句:
gigl <- function(family = poisson()){
x <- switch(family$family,
binomial = 1,
gaussian = 2,
3)
}
您可能更喜欢dplyr::case_when
:
gigl2 <- function(family = poisson()){
dplyr::case_when(family$family == 'binomial' ~ 1,
family$family == 'gaussian' ~ 2,
TRUE ~ 3)
}
结果:
gigl(family = poisson())
# [1] 3
gigl(family = binomial())
# [1] 1
gigl(family = gaussian())
# [1] 2
gigl2(family = poisson())
# [1] 3
gigl2(family = binomial())
# [1] 1
gigl2(family = gaussian())
# [1] 2