Fehler bei der Berechnung von Werten über 95% Quantil mit plyr

Meine Daten sind wie folgt aufgebaut:

Individ <- data.frame(Participant = c("Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", "Bill", 
                                      "Harry", "Harry", "Harry", "Harry","Harry", "Harry", "Harry", "Harry", "Paul", "Paul", "Paul", "Paul"),
                      Time = c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4),
                      Condition = c("Placebo", "Placebo", "Placebo", "Placebo", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr", 
                                    "Placebo", "Placebo", "Placebo", "Placebo", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr", "Expr"),
                      Power = c(400, 250, 180, 500, 300, 450, 600, 512, 300, 500, 450, 200, 402, 210, 130, 520, 310, 451, 608, 582, 390, 570, NA, NA))

Usingdplyr Ich wende einen gleitenden Durchschnitt (von 2 bis 4 Sekunden) über den folgenden Code an:

for (summaryFunction in c("mean")) {
  for ( i in seq(2, 4, by = 1)) {
    tempColumn <- Individ %>%
      group_by(Participant) %>%
      transmute(rollapply(Power,
                          width = i, 
                          FUN = summaryFunction, 
                          align = "right", 
                          fill = NA, 
                          na.rm = T))
    colnames(tempColumn)[2] <- paste("Rolling", summaryFunction, as.character(i), sep = ".")
    Individ <- bind_cols(Individ, tempColumn[2])
  }
}

Ich möchte jetzt die oberen 5% von @ berechnPower für jedesParticipant über jeden der gleitenden Durchschnitte. Um dies zu berechnen, benutze ich:

Output = ddply(Individ, .(Participant, Condition), summarise,
           TwoSec <- Rolling.mean.2 > quantile(Rolling.mean.2 , 0.95, na.rm = TRUE))

Allerdings ende ich mit einer Spalte, die besagt,TRUE oderFALSE. Stattdessen bin ich nach den tatsächlichen Werten, die in den oberen 5% liegen. Wie mache ich das? Gibt es auch eine einfachere Möglichkeit, nach Teilnehmer und Bedingung über jede Spalte mit fortlaufendem Mittelwert zu iterieren, um die besten 5% in jeder Spalte zu finden?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage