我有几个变量是布尔值。我想使用mutate((创建一个变量,如果根据列名选择的任何变量也是TRUE,则该变量将为TRUE。
我试过以下几种。
mutate(anyTRUE = if_any(.cols = select(contains("var")), isTRUE(.)))
isTRUE((没有以我希望的方式接收变量。有没有不同的方法来构建它,或者我可以使用不同的函数来获得期望的结果?
谢谢。
删除select
-如果我们想使用isTRUE
,请使用rowwise
,然后使用mutate
library(dplyr)
dat %>%
rowwise %>%
mutate(anyTRUE = if_any(.cols = contains('var'), isTRUE)) %>%
ungroup
或者在没有rowwise
的情况下,使用I
(与逻辑列相同(
dat %>%
mutate(anyTRUE = if_any(.cols = contains('var'), I))
或者没有任何功能,因为这些都是逻辑
dat %>%
mutate(anyTRUE = if_any(.cols = contains('var')))
var1 var2 var3 anyTRUE
1 TRUE FALSE FALSE TRUE
2 FALSE TRUE FALSE TRUE
3 FALSE FALSE FALSE FALSE
数据
dat <- data.frame(var1 = c(TRUE, FALSE, FALSE),
var2 = c(FALSE, TRUE, FALSE), var3 = FALSE)