gpt4 book ai didi

r - 如何在 dplyr 中链接 ifelse 语句

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

我试图在我的一个 R 函数中链接 ifelse 语句。基本上我想做的是:

do.something <- function (df, cond=TRUE){
df %>% ifelse(cond, do something, do something else)
}

以 mtcars 数据集为例:
    select.vars <- function (df, cond=TRUE){
df %>% ifelse(cond, select(., mpg,wt), select(., hp, wt))
}

select.vars(mtcars )

错误信息:
Error in ifelse(., cond, select(., mpg, wt), select(., hp, wt)) : unused argument (select(., hp, wt))

我只是想知道我做错了什么。任何人都可以帮忙吗?非常感谢。

最佳答案

由于逻辑向量是 length 1、我们可以使用if/else健康)状况

select.vars <- function (df, cond=TRUE){
if(cond){
df %>%
select(mpg, wt)
} else {
df %>%
select(hp, wt)
}
}

select.vars(mtcars )

最好用 if/else为此,但如果我们需要 ifelse和选项是使用 ifelseselect
select.vars <- function (df, cond=TRUE){

df %>%
select(ifelse(rep(cond, 2), c('mpg', 'wt'), c('hp', 'wt')))


}

select.vars(mtcars)

关于r - 如何在 dplyr 中链接 ifelse 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335908/

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