Ich bin ein Rookie-STATA-Benutzer, der versucht, den Sprung zu R zu machen. Ich arbeite durch verschiedene Übungen, behalte aber immer etwas falsch mit dem Befehl group_by und subset.Gruppenberechnungen mit group_by und Subset-Befehlen
Ich habe einen einfachen Datensatz, auf dem ich gruppenbasierte Berechnungen vornehmen möchte. Ich versuche, den Befehl groups_by aus dem dplyr-Paket zu verwenden, um dies zu tun.
My Datensatz wird juckende genannt und besteht aus 4 variabels:
Behand- Ebene A und B (Art der Behandlung)
Typ- Ebene Dunkel und Fair (Hautfarbe)
y - Ebene 0 und 1 (Versagen oder Erfolg der Behandlung)
Freq - numerische Variable, die angibt, wie in dieser speziellen Gruppe sind viele
diesen Code können Sie es neu erstellen:
type <- c(2,2,2,2,1,1,1,1)
treat <-c(1,1,2,2,1,1,2,2)
y <- c(1,0,1,0,1,0,1,0)
freq <- c(9,17,5,20,10,15,3,20)
itchy <- cbind.data.frame(type,treat,y,freq)
itchy$type <- as.factor(type)
itchy$type <- factor(itchy$type,levels = c(1,2), labels = c("Dark", "Fair"))
itchy$treat <- as.factor(treat)
itchy$treat <- factor(itchy$treat,levels = c(1,2), labels = c("A", "B"))
itchy$y <- as.factor(y)
itchy$y <- factor(itchy$y,levels = c(0,1), labels = c("failure", "succes"))
Nun möchte ich die ODs für einen Erfolg für die Behandlungen A und B berechnen, wenn sie auf den Hauttyp Dark oder Fair aufgetragen werden. (Ods = nr erfolgreiche Veranstaltungs/nr Ausfälle)
Ich habe zwei Fragen:
1) Können Sie mir helfen, durch Gruppen, die die ods Berechnungen zu tun?
2) Ich habe versucht mit verschiedenen Kombinationen von group_by und subset, ohne Glück. Der folgende Code zeigt einige meiner erfolglosen Versuche. Können Sie dann sagen, dass ich, wie die group_by und Teilmenge Befehle funktionieren
itchy %>% group_by(treat, type) %>% summarize(ods = (subset(freq, y==1)/subset(freq, y==0)))
itchy %>% group_by(treat, type) %>% ods <- c((subset(freq, y==1)/subset(freq, y==0)))
itchy %>% group_by(treat, type) %>% itchy$ods <- (subset(freq, y==1)/subset(freq, y==0))
Das hat wie ein Zauber funktioniert. Nur um sicherzustellen, dass ich den Code verstehe: "Spread" ändert die y-Variable von Long- zu Wide-Format. "muate" erzeugt eine neue Variable –
Das ist richtig. Ich hätte die Argumentnamen für Klarheit verwenden sollen. Sie finden die Dokumente online unter http://tidyr.tidyverse.org –