假设我有以下data.frame
x <- data.frame("a" = rep(1:3, each = 3),
b = c(1, NA, NA, NA, NA, NA, 3, 3, NA))
现在,我想使用NA
从上面填充fill()
每组。简单:
x %>%
group_by(a) %>%
fill(b)
不会工作fill()
显然无法按群组工作,除非包含在do()
命令中(组2中的NA填充了1&#39; s,尽管他们应该是NA)。因此以下是我想要的
x %>%
group_by(a) %>%
do(fill(., b))
这当然是一种非常干净的方式,但是,我想知道dplyr:do()
通常是否会比使用&#34;标准&#34; dplyr
功能。
例如,我可以实现类似的结果
x %>%
group_by(a) %>%
filter(n() != sum(is.na(b))) %>%
fill(b)
这是不一样的,因为在第二种情况下,只有NA
的列b
才会在使用fill()
之前进行过滤,但我通常想知道一个变通方法是否值得考虑或者do()
是否足够好?
dplyr::fill()
现在每个群组都有效,所以可以&#34;解决方法&#34;没有必要了。