我注意到,当我按组应用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文件问题的评论,这在开发版本中得到了修复