Ich habe diese data.frame:dplyr: Rohre im Inneren zusammenfassen der nach group_by
df_test = structure(list(`MAE %` = c(-0.0647202646339709, -0.126867775585001,
-1.81159420289855, -1.03092783505155, -2.0375491194877, -0.160783192796913,
-0.585827216261999, -0.052988554472234, -0.703351261894911, -0.902996305924203,
-0.767676767676768, -0.0101091791346543, -0.0134480903711673,
-0.229357798165138, -0.176407935028625, -0.627062706270627, -1.75706139769261,
-1.23024009524439, -0.257391763463569, -0.878347259688137, -0.123613523987705,
-1.65711947626841, -2.11718534838887, -0.256285931980328, -1.87152777777778,
-0.0552333609500138, -0.943983402489627, -0.541095890410959,
-0.118607409474639, -0.840453845076341), Profit = c(7260, 2160,
-7080, 3600, -8700, 6300, -540, 10680, -1880, -3560, -720, 5400,
5280, 1800, 11040, -240, -2320, 2520, 10300, -2520, 8400, -9240,
-5190, 7350, -6790, 3600, -3240, 8640, 7150, -2400)), .Names = c("MAE %",
"Profit"), row.names = c(NA, 30L), class = "data.frame")
Jetzt möchte ich einige zusammenfassende Statistiken wie:
df_test %>%
group_by(win.g = Profit > 0) %>%
summarise(GroupCnt = n(),
TopMAE = filter(`MAE %` > -1) %>% sum(Profit),
BottomMAE = filter(`MAE %` <= -1) %>% sum(Profit))
So wir Gruppendaten, wenn Profit> 0 oder < = 0. Dann möchte ich sum() von Profit für Zeilen mit MAE% < = -1 und für MAE%> -1. Gruppierung muss für TopMAE, BottomMAE Berechnung verwendet werden.
Erwartetes Ergebnis ist wie:
# win.g CroupCnt TopMAE BottomMAE
#1 FALSE 14 -15100 -39320
#2 TRUE 16 95360 6120
Aber mein R-Code arbeitet nicht. Ich habe einen Fehler:
Error: no applicable method for 'filter_' applied to an object of class "logical"
ich meinen Code geändert haben nach Fehler:
df_test %>%
group_by(win.g = Profit > 0) %>%
summarise(UnderStop = n(),
TopMAE = filter(., `MAE %` > -1) %>% sum(Profit),
BottomMAE = filter(., `MAE %` <= -1) %>% sum(Profit))
Aber das Ergebnis ist keine. Ich habe einen Fehler wieder:
Error: incorrect length (14), expecting: 16
Ich versuchte Gruppierung Verhalten zu verstehen und wie Rohrleitungen verwenden innen zusammenfassen nach dem Gruppieren, aber ich habe nicht den Erfolg. Verbringe den ganzen Tag damit.
WIE kann ich meine erwartete Ergebnistabelle erhalten? Bitte helfen Sie mir zu verstehen, dplyr Logik beim Gruppieren und Berechnen einiger Funktionen in diesen Gruppen.
Vielen Dank für Ihre Lösung. Es ist wirklich lesbar und schnell. Meine erwarteten Zahlen waren falsch, wie ich jetzt sehe. Habe das in meinem Post korrigiert. @ Benjamin gibt uns auch eine sehr gute Lösung und mehr dplyr gestylt. Ich habe für deine gewählt, weil du die erste warst. Aber was ist mit Rohrleitungen innen zusammenfassen und mutieren und so weiter? Ist es möglich oder nicht? – ra81