2016-06-05 5 views
2

Ich habe ein Datenframe mit Spalten wie unten definiert. Ich habe eine Reihe von Beispiel vorgesehen, ähnlich wie dies ichWie mit mehreren Spalten in Datenrahmen mit R gruppieren und aggregieren Funktion

vielen Ländern mit Kreditbetrag und Geschlecht Variablen haben
 country   loan_amount   gender 
1  Austia    175    F   
2  Austia    100    F   
3  Austia    825    M   
4  Austia    175    F   
5  Austia    1025    M   
6  Austia    225    F   

Hier habe ich von Ländern Gruppe müssen und dann für jedes Land, ich muss nach Geschlecht Darlehen Prozentsatz berechnen in neue Spalten, so dass neue Spalten männlichen Prozentsatz des gesamten Darlehensbetrags für dieses Land und weiblichen Prozentsatz des gesamten Darlehensbetrags für dieses Land haben. Ich muss zwei group_by Funktion machen, zuerst alle Länder zusammen gruppieren und nach dieser Gruppe Geschlecht, um Darlehensprozentsatz zu berechnen.

Total loan amount = 2525 
    female_prcent = 175+100+175+225/2525 = 26.73 
    male_percent = 825+1025/2525 = 73.26 

Die Ausgabe sollte wie unten sein:

 country   female_percent male_percent 
1  Austia    26.73   73.26   

Ich versuche, dies in R. zu tun, habe ich versucht, die unten Funktion, aber meine R-Sitzung kein Ergebnis produzieren und es wird beendet.

df %>% 
    group_by(country, gender) %>% 
    summarise_each(funs(sum)) 

Könnte mir jemand helfen, diese Ausgabe zu erreichen? Ich denke, das kann mit der dplyr-Funktion erreicht werden, aber ich bin dazwischen.

+0

Da es nur eine Spalte ist, können Sie 'anstelle von summarise_each' – akrun

+0

Sie summarise' bedeutet die Summe der Kreditbetrag Spalte zusammenfassen? – SRS

+0

Ja, sollte es funktionieren, aber ich bin mir nicht sicher, was Sie mit dem Beenden gemeint haben? – akrun

Antwort

1

Wir können die gewichtete Tabelle aus questionr Paket versuchen:

library(questionr) 
with(df, wtd.table(country, gender, weights = round(100 * loan_amount/sum(loan_amount), 2))) 

      F  M 
Austia 26.73 73.26 
+0

Danke. Es funktionierte – SRS