<分区>
假设你有:
df = data.frame(a = c(1,2,NA),b = c(NA, 1,2))
> df
a b
1 1 NA
2 2 1
3 NA 2
并希望基于 a 创建一个新列 c。如果缺少 a,则使用 b。这有效:
df %>% mutate(c= a,
c = replace(c, is.na(a), b[is.na(a)]))
但是(对我来说,只有我?)看起来很笨拙(从某种意义上说,我必须拼出 is.na(a)
两次)。这更容易:
df %>%
rowwise() %>%
mutate(c = a,
c = replace(c, is.na(a), b]))
但它需要额外的 rowwise()
命令,我可以想象我的 mutate
语句的总和将无法按行工作的情况。
我是否遗漏了一些 dplyr
功能来简化此(非常常见的任务?)?