dplyr:do()通常比dplyr中的专用函数慢吗?

时间:2015-10-13 13:12:10

标签: r performance dplyr

假设我有以下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()是否足够好?

更新:15.12.2017

dplyr::fill()现在每个群组都有效,所以可以&#34;解决方法&#34;没有必要了。

0 个答案:

没有答案