2016-06-22 7 views
-1

Ich habe eine Excel-Tabelle mit R zu überprüfen, die wie folgt aussieht:Der Versuch, Wahrscheinlichkeiten eines Spielautomaten

BAR1 BAR1 BAR2 5 6 40 
BLANK BLANK BLANK 4 10 9 
Bar1 SEV BAR1 5 50 40 
BLANK BLANK BLANK 3 61 9 
BAR2X BAR1 BAR2 30 51 23 
BLANK BLANK BLANK 3 61 31 

ich eine Tabelle erstellen möchten, die alle Symbole in der äußersten linken Spalte hat, mit dem entsprechenden wie oft dieses Symbol angezeigt wurde. dh

Bar1 10(5+5) 57(51+6) 40(40) 
Blank 10   132  49 
..... 

Ich habe mein Bestes getan, dies zu erforschen, aber ich nehme an, Sie Jungs schnell mit einer sehr eleganten Lösung kommen zu uns loszulegen. Vielen Dank.

+1

Es ist mir nicht klar, wie Sie die Werte in der zweiten Tabelle von denen in der ersten erhalten. Zum Beispiel haben Sie '80 (40 + 40)' als die letzte Spalte in der Zeile Bar1, aber ich sehe nicht zwei 40 mit Bar1 in der ersten Tabelle assoziieren. – nbryans

+0

Können Sie bitte einige der Daten "dput"? –

+0

Ich habe meine Berechnungen bearbeitet. Ich habe fälschlicherweise die falschen Nummern hinzugefügt. Ich bin mir sicher, dass dein ursprüngliches Denken richtig war. Ich werde die Dput-Sache ein wenig später am Tag versuchen. –

Antwort

0

Da Sie im Wesentlichen versuchen, die durch die entsprechenden Spalten gruppierten Werte zusammenzufassen, können Sie Ihren Datenrahmen in drei Datenrahmen unterteilen, die Zusammenfassung erstellen und sie dann zusammenführen. So etwas wie das sollte funktionieren:

cols = list(c(1,4), c(2,5), c(3,6)) 
aggList <- lapply(cols, function(i) 
        aggregate(x = df[i][[2]], by = list(tolower(df[i][[1]])), sum)) 

Reduce(function(x, y) merge(x, y, by = "Group.1"), aggList) 
    Group.1 x.x x.y x 
1 bar1 10 57 40 
2 blank 10 132 49