是否可以在内部的 lambda 函数中引用列名across()?
df <- tibble(age = c(12, 45), sex = c('f', 'f'))
allowed_values <- list(age = 18:100, sex = c("f", "m"))
df %>%
mutate(across(c(age, sex),
c(valid = ~ .x %in% allowed_values[[COLNAME]])))
我刚刚遇到了这个问题,其中 OP 询问基于允许值列表验证数据框中的列。
dplyr刚刚获得across(),这似乎是一个自然的选择,但我们需要列名来查找允许的值。
我能想到的最好的方法是调用imap_dfr,但是集成到分析管道中更加麻烦,因为需要将结果与原始数据帧重新组合。