我想用现有变量的名称在 dfABy 中创建一个列 - C - 当在列表 A 或 B 中它是“非 NA”值时。例如,我的 df 是:
>dfABy
A B
56 NA
NA 45
NA 77
67 NA
NA 65
我参加的结果是:
> dfABy
A B C
56 NA A
NA 45 B
NA 77 B
67 NA A
NA 65 B
使用的一种选择dplyr
可能是:
df %>%
rowwise() %>%
mutate(C = names(.[!is.na(c_across(everything()))]))
A B C
<int> <int> <chr>
1 56 NA A
2 NA 45 B
3 NA 77 B
4 67 NA A
5 NA 65 B
或者加上purrr
:
df %>%
mutate(C = pmap_chr(across(A:B), ~ names(c(...)[!is.na(c(...))])))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句