Wie berechnet der ggplot2 / plyr statistische Tests zwischen zwei Untergruppen?

8

Ich bin ein eher unerfahrener Benutzer von R und habe die Eleganz von ggplot2 und plyr schätzen gelernt. Momentan versuche ich einen großen Datensatz zu analysieren, den ich hier nicht teilen kann, aber ich habe mein Problem mit dem Diamanten-Datensatz rekonstruiert (verkürzt für die Bequemlichkeit). Ohne weiteres:

%Vor%

Was die Handlung produziert, ist eine Reihe von Boxplots, die den Preis der beiden Schnitte "Fair" und "Ideal" vergleichen.

Ich würde jetzt sehr gerne fortfahren, indem ich die zwei Schnitte für jede Farbuntergruppe (D, E, F, .., J) statistisch vergleiche, entweder mit t.test oder wilcox.test.

Wie würde ich das auf eine Weise implementieren, die so elegant ist wie die ggplot2-Syntax? Ich nehme an, ich würde ddply aus dem plyr-Paket verwenden, aber ich konnte nicht herausfinden, wie man zwei Untergruppen in eine Funktion füttert, die die entsprechenden Statistiken berechnet.

    
Michael 26.09.2012, 14:27
quelle

2 Antworten

11

Ich denke, du suchst:

%Vor%

(Das Ersetzen von t.test für wilcox.test scheint ebenfalls zu funktionieren.)

Ergebnisse:

%Vor%     
Ben Bolker 26.09.2012, 16:50
quelle
2

ddply gibt einen Datenrahmen als Ausgabe zurück und, vorausgesetzt, dass ich Ihre Frage richtig lese, ist das nicht, was Sie suchen. Ich glaube, Sie würden gerne eine Reihe von T-Tests mit einer Reihe von Teilmengen von Daten durchführen, so dass die einzige wirkliche Aufgabe darin besteht, eine Liste dieser Teilmengen zu erstellen. Sobald Sie sie haben, können Sie eine Funktion wie lapply () verwenden, um einen T-Test für jede Teilmenge in Ihrer Liste auszuführen. Ich bin mir sicher, dass dies nicht die eleganteste Lösung ist, aber ein Ansatz wäre, eine Liste eindeutiger Farbpaare mit einer Funktion wie dieser zu erstellen:

%Vor%

Jetzt können Sie diese Funktion verwenden, um Ihre Liste eindeutiger Farbpaare zu erhalten:

%Vor%

Nun können Sie jede dieser Listen verwenden, um einen t.test (oder was auch immer Sie möchten) auf Ihrer Teilmenge Ihres Datenrahmens auszuführen:

%Vor%

Verwenden Sie nun lapply (), um Ihren Test für jede Teilmenge in Ihrer Liste von Farbpaaren auszuführen:

%Vor%     
user1327089 26.09.2012 16:37
quelle

Tags und Links