【发布时间】:2019-11-19 11:42:47
【问题描述】:
我在 R 中有一个表格和一个向量列表,如下所示:
> table
ID value
1 1 B
2 2 D
3 3 H
4 4 A
5 5 F
> categories
$catA
[1] "A" "B" "C"
$catB
[1] "D" "E" "F"
$catC
[1] "G" "H" "A"
此时,我有一系列 mutate 函数来为每个类别添加一列,如果值在类别中,则为 TRUE,否则为 NA。
> table %>%
+ mutate(catA = if_else(value %in% categories$catA, T, NA)) %>%
+ mutate(catB = if_else(value %in% categories$catB, T, NA)) %>%
+ mutate(catC = if_else(value %in% categories$catC, T, NA))
ID value catA catB catC
1 1 B TRUE NA NA
2 2 D NA TRUE NA
3 3 H NA NA TRUE
4 4 A TRUE NA TRUE
5 5 F NA TRUE NA
但是,实际上我有更多类别,并且必须单独创建每个列并不理想。我试图将这些压缩为一个函数,但我正在努力遍历类别列表并适当地命名新列。我怀疑我需要使用 quosures,但是在阅读了 dplyr vignette 中的编程之后,我仍然在努力让它们工作。
【问题讨论】: