Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用dplyr中的if..else..语句在r中链接_R_Dplyr_Tidyverse - Fatal编程技术网

如何使用dplyr中的if..else..语句在r中链接

如何使用dplyr中的if..else..语句在r中链接,r,dplyr,tidyverse,R,Dplyr,Tidyverse,我的问题是如何使用dplyr链接中的if..else..语句? 例如: select.vars <- function(data, price=TRUE ){ diamonds %>% {if (price) select(price) else select(carat)} } select.vars(diamonds) 这是一个没有意义的函数。只是为了举例说明。。。 非常感谢 我们可以在选择中使用if/else select.vars <- function(da

我的问题是如何使用dplyr链接中的if..else..语句? 例如:

select.vars <- function(data, price=TRUE ){
    diamonds %>% {if (price) select(price) else select(carat)}
}
select.vars(diamonds)
这是一个没有意义的函数。只是为了举例说明。。。
非常感谢

我们可以在
选择中使用
if/else

select.vars <- function(data, price=TRUE){
     diamonds %>% 
              select(if(price) "price" else "carat")
 }

resprice <-  select.vars(diamonds)
rescarat <- select.vars(diamonds, FALSE)
head(rescarat)
# A tibble: 6 x 1
#  carat
#  <dbl>
#1  0.23
#2  0.21
#3  0.23
#4  0.29
#5  0.31
#6  0.24

head(resprice)
# A tibble: 6 x 1
#  price
#  <int>
#1   326
#2   326
#3   327
#4   334
#5   335
#6   336
select.vars%
选择(如果(价格)“价格”或“克拉”)
}

resprice我刚想出来。只需为每个选择添加

select.vars <- function(data, price=TRUE ){
    diamonds %>% {if (price) select(., price) else select(., carat)}
}
select.vars%{if(price)select(,price)else select(,克拉)}
}
select.vars <- function(data, price=TRUE ){
    diamonds %>% {if (price) select(., price) else select(., carat)}
}