我有两组变量,例如 variablea
和 variable a_avail
。我正在尝试根据 的值更改 的a
值,a_avail
并且想知道这是否可以使用across
with来完成glue
。
这是我尝试过的。没有产生错误,但胶水似乎没有拾取 的值,.x_avail
因为所有返回的值都是 NA:
library(tidyverse)
df <- tibble(a = c(0, 1, 0, 0, 0),
a_avail = c(1, 1, 1, 0, 0),
b = c(1, 1, 1, 0, 0),
b_avail = c(1, 0, 0, 1, 0))
df2 <- df %>%
mutate(across(.cols = c(a, b),
.fns = ~case_when(
glue::glue("{.x}_avail") == 1 ~ .x,
glue::glue("{.x}_avail") == 0 ~ as.numeric(NA)
),
.names = "{.col}_new"))
df2
#> # A tibble: 5 x 6
#> a a_avail b b_avail a_new b_new
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0 1 1 1 NA NA
#> 2 1 1 1 0 NA NA
#> 3 0 1 1 0 NA NA
#> 4 0 0 0 1 NA NA
#> 5 0 0 0 0 NA NA
由reprex 包(v0.3.0)于 2021-02-12 创建