gpt4 book ai didi

r - 在 R 中使用逻辑变量替代 if-then-else

转载 作者:行者123 更新时间:2023-12-05 00:21:29 25 4
gpt4 key购买 nike

假设我有一个函数,它接受三个逻辑参数并返回一个字符串,指示其中哪些设置为 TRUE:

func_log <- function(option_1, option_2, option_3) {
if (option_1 && option_2 && option_3) {
opt <- "all"
} else {
if (option_1 && option_2) {
opt <- "first two"
} else {
if (option_1 && option_3) {
opt <- "first, last"
} else {
opt <- "last two"
}
}
}
return(opt)
}

有没有办法避免在这里构造这些 if-else?使用 switch可能是(如果有一个例子会很感激)?还有什么办法吗?

最佳答案

怎么样

myfun <- function(...) which(c(...))

# examples
myfun(TRUE,FALSE,TRUE)
# [1] 1 3
myfun(FALSE,FALSE,TRUE,TRUE,FALSE,TRUE)
# [1] 3 4 6

如果你愿意,你可以在这些箱子上加上名字,比如
mystrfun <- function(...) toString(c(letters,LETTERS)[myfun(...)])

mystrfun(TRUE,FALSE,TRUE)
# [1] "a, c"
mystrfun(FALSE,FALSE,TRUE,TRUE,FALSE,TRUE)
# [1] "c, d, f"

替换 c(letters,LETTERS)无论你想要什么名字,它们都会串在一起。

关于r - 在 R 中使用逻辑变量替代 if-then-else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619943/

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