r-dplyr错误-当第一组全部为NA时,分组的ntile失败



我注意到,当我按组应用dplyr(v0.4.3)ntile函数时,第一组中的所有值都是NA,第三组中所有值的结果也变成NA。这是一个奇怪的错误(?),只有当第一组是NA时才会发生。

下面的简单示例-预期的行为是,ntile将组"a"中的所有NA值列为NA,但它也将组"c"列为NA(即使它不包含NA值)。如果我将NA值移动到组"b",函数将按预期工作。

x <- data.frame(group = rep(c("a","b","c","d"), 5), value = 1:20)
x$value <- ifelse(x$group == "a", NA, x$value)
x %>%
group_by(group) %>%
mutate(quintile = ntile(value, 5))
# Source: local data frame [20 x 3]
# Groups: group [4]
# 
#     group value quintile
#    (fctr) (int)    (int)
# 1       a    NA       NA
# 2       b     2        1
# 3       c     3       NA
# 4       d     4        1
# 5       a    NA       NA
# 6       b     6        2
# 7       c     7       NA
# 8       d     8        2
# 9       a    NA       NA
# 10      b    10        3
# 11      c    11       NA
# 12      d    12        3
# 13      a    NA       NA
# 14      b    14        4
# 15      c    15       NA
# 16      d    16        4
# 17      a    NA       NA
# 18      b    18        5
# 19      c    19       NA
# 20      d    20        5

作为背景,我是日期滞后的股票数据,它为第一个日期的所有值创建NA。然后,当我按日期进行五分位数分组时,排名函数无法正常工作。

非常感谢,Alex Ryer

根据hadley对OP文件问题的评论,这在开发版本中得到了修复

最新更新