2016-04-12 3 views
3

Ich habe festgestellt, dass, wenn ich die Funktion dplyr (v0.4.3) ntile nach Gruppe anwendet, und alle Werte in der ersten Gruppe sind NA, das Ergebnis für alles in die dritte Gruppe wird auch NA. Dies ist ein seltsamer Fehler (?), Der nur auftritt, wenn die erste Gruppe NA ist.dplyr Fehler - Gruppenntil schlägt fehl, wenn die erste Gruppe alles ist NA

Einfaches Beispiel unten - Das erwartete Verhalten ist, dass ntile alle NA-Werte in der Gruppe "a" als NA klassifiziert, aber auch die Gruppe "c" als NA klassifiziert, obwohl sie keine NA-Werte enthält. Wenn ich die NA-Werte in die Gruppe "b" verschiebe, funktioniert die Funktion wie erwartet.

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 

Für Hintergrund bin ich datum hinkt Bestandsdaten, die NA am ersten Tag für alle Werte schaffen. Dann, wenn ich dann nach Datum gruppiert bin, funktioniert die Ranking-Funktion nicht richtig.

Vielen Dank im Voraus, Alex Ryer

+2

Nun, ich bin ratlos. Ich kann das Problem reproduzieren und es besteht unabhängig von der Reihenfolge der Zeilen oder 'ntile' Gruppen. – thelatemail

+2

Ich benutze dplyr_0.4.2 Ich bekomme den Fehler nicht. Ich bekomme Quintil = NA 1 1 1 NA 2 2 2 NA 3 3 3 NA 4 4 4 NA 5 5 5 – chinsoon12

+2

u möglicherweise möchten Sie ein Problem auf https://github.com/hadley/dplyr/issues – chinsoon12

Antwort

Verwandte Themen