假设我有这个示例数据:
library(tidyverse)
colNames <- c('A', 'B')
df <- tibble(A = sample(1:1000, 20),
A_Direction = 'Decreasing',
B = sample(1:1000, 20),
B_Direction = 'Increasing')
我想更改列A
,B
如果A_Direction
orB_Direction
减少,则为 0,如果增加,则为 1。这是我尝试过的:
dfNew <- df %>%
mutate(across(.cols = matches(paste0('^', colNames, '$')),
.fns = ~ifelse(test = paste0(cur_column(), '_Direction')=='Decreasing',
yes = 0,
no = 1)))
但当然,它无法识别该test
参数,因为它是一个字符串,因此两列都变成了1
。我有什么想法可以通过编程来完成这个任务(OG 数据有很多很多这样的列)。