Der Versuch, bedingt basierend auf den vorherigen Gruppierungen zu summieren. Schwierigkeiten dabei zu haben.bedingte Zusammenfassung/muate in dplyr
Ich versuche, die amt Spalte basierend auf denen im Typ r1, nach der Gruppierung von f zusammenzufassen.
Reproduzierbare Code:
s <- sample(c('one', 'two'), 96, replace = TRUE)
f <- sample(c('a','s','d','f'), 96, replace = TRUE)
r1_amt <- runif(96, 1, 100)
r2_amt <- runif(96, 1, 100)
r3_amt <- runif(96, 1, 100)
x <- data_frame(s, f, r1_amt, r2_amt, r3_amt)
smy <- x %>%
group_by(f) %>%
summarise(n = n(), # population in each f group
num_r1 = sum(r1_amt >= 50)) # amount of r1 in each f group
Ich habe versucht .[r1_amt >= 50]$amt
, cumsum(r1_amt >= 50)
, sum(ifelse(r1_amt >= 50, r1_amt, 0))
aber nicht in der Lage mit den gruppierten Zahlen zu kommen.
Also 1 gegebene Zeile könnte eine 60 für r1, 40 für r2 und 55 für r3 und es sollte in der summierten Betrag Spalte für nur r1 und r3 enthalten sein, wenn das Sinn macht.
Was Ausgang Ihre erwartete ist? – Psidom
habe ich das reproduzierbare Beispiel angepasst, da ich es nicht ganz richtig gemacht habe. Ich möchte eine gegebene Beobachtung als r1 klassifizieren, wenn sie im r1_amt mehr als 50 hat. Und dann sollte die sum_r1_amt Spalte die Summe von r1_amt sein, nur wenn die Beobachtung über 50 ist. –
@MattW. Wenn Sie Ihre Frage ändern möchten, fragen Sie eine andere als Follow-up. Es ist nicht professionell, nach 16 Stunden zurückzukommen und deine Frage zu bearbeiten. Es ist nicht so schwer, meine Antwort zu ändern, um Ihre neue Anfrage zu beantworten, aber ich überlasse das Ihnen oder vielleicht anderen Antworten. – Masoud