Ich möchte auf meine verkettete Zeichenfolge mit einigen Bedingungen zu mitteln. dies ist meine Daten:Durchschnitt auf verketteten String mit einigen Bedingungen
id path events
1 a, b 2, 3
2 c, a 3, 4
3 b 5
Ich möchte durchschnittlich Reihen nehmen, die nicht haben einen bestimmten Weg, beispielsweise den Mittelwert der Zeilen, die nicht c hat (dh Zeile 1 und 3) zu tun ist (2 + 3 + 5)/3 = 3,33
und ähnlich für die anderen so meine gewünschte Ausgabe
path avg
a 5
b 3.5
c 3.33
vor, daß ich nicht verketteten Daten versucht wird und es funktionierte
output <- sapply(as.character(unique(df$path)),
function(x) mean(subset(df, !path %in% x)$events))
konnte aber nicht mit einer Idee für diese Situation kommen
Dies ist meine Daten
mydata <- data.frame(id =c(1,2,3),
path= c("a,b", "c,a", "b"),
events =c (("2,3"), ("3,4"), ("5")))
Sie können 'tidyr :: separate_rows' verwenden, um Ihre Daten zu vereinheitlichen, aber ich bin mir nicht sicher, ob ich Ihrer Zusammenfassungslogik folge. – alistaire
@alistaire Dankeschön (meine obige Sommerisierungslogik, zum Beispiel für c, wir legen die Zeilen mit c beiseite, also entfernen wir Zeile 2 (die c hat) und behalten Zeile 1 und 3 und nehmen Durchschnitt von alle Ereignisse in Zeile 1 und 3, die 2 + 3 + 5/3 = 3.33 ist – MFR