2017-02-06 4 views
0

Ich stieß auf ein interessantes Problem, wenn Mittelwert/Median einer Teilmenge einer Spalte in einem Datenrahmen unter einer Bedingung berechnet wurde.Dplyr select() - brauche numerische Daten Problem

An diesem Punkt, ich brauche keine Ratschläge, dachte aber, dieses Problem wäre interessant zu teilen: (.) ​​

testFile <- data.frame(
    ID = 1:10, Value = rnorm(10), 
    Condition = sample(c("Yes", "No"), 10, replace = T) 
) 
median1 <- median(testFile[testFile$Condition == "Yes", ]$Value) 
median2 <- testFile %>% 
    filter(Condition == "Yes") %>% 
    select(Value) %>% 
    median 

Fehler in median.default: müssen numerische Daten

jedoch der folgende Code funktioniert:

max2 <- testFile %>% 
    filter(Condition == "Yes") %>% 
    select(Value) %>% 
    max 

values <- testFile %>% 
    filter(Condition == "Yes") %>% 
    select(Value) 

class(values[2,1]) 

[1] "numerisch"

Antwort

0

Lösung aus dem dplyr Ergebnis mit fehlender oder:

median3 <- testFile %>% filter(Condition == "Yes") %>% select(Value) %>% unlist %>% median 

Nicht dplyr Lösung, wie bereits im OP mentioined wurde:

> median1 <- median(testFile[testFile$Condition == "Yes", ]$Value) # Working