【发布时间】:2020-09-21 03:43:09
【问题描述】:
是否可以在 across() 内的 lambda 函数中引用列 names?
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]])))
我刚刚遇到this question,其中 OP 询问基于允许值列表验证数据框中的列。
dplyr 刚刚获得了across(),这似乎是一个自然的选择,但我们需要列名来查找允许的值。
The best I could come up with 是对imap_dfr 的调用,但是集成到分析管道中比较麻烦,因为需要将结果与原始数据帧重新组合。
【问题讨论】: