我们在R中有以下数据帧
# Create example dataframe
df <- data.frame(gp = c(0, 1, 0, 1),
col1A = c(1, 2, 3, 4),
col1B = c(5, 6, 7, 8),
col2A = c(11, 12, 13, 14),
col2B = c(15, 16, 17, 18),
col3A = c(11, 12, 13, 14),
col3B = c(15, 16, 17, 18))
我们希望应用以下逻辑:
df %>%
dplyr::mutate(col1A = ifelse(gp == 0, col1B, col1A)) %>%
dplyr::mutate(col2A = ifelse(gp == 0, col2B, col2A)) %>%
dplyr::mutate(col3A = ifelse(gp == 0, col3B, col3A))
然而,我们希望用结合了mutate
和across
(或其他方法)的1个调用来取代3 mutate
个调用.假设我们在字符串中有这些变量,那么aVars = c('col1A', 'col2A', 'col3A')
和bVars = c('col1B', 'col2B', 'col3B')
.
这种类型的整合可能吗?我们以前一起使用过mutate
和across
,但在使用两组变量时,就像我们在这里使用A
和B
变量一样,似乎更难做到这一点.