Ich möchte einen gruppierten gestapelten Barplot für mehrere verschiedene Variablen, var1PA, var2PA, grafisch darstellen, indem berechnet wird, wie oft jede Var in einem Fall und einem Steuerelement vorhanden oder abwesend war.Berechne innerhalb variablem Prozentsatz für gestapelten gruppierten Barplot
df <- data.frame(SampleID = c(1, 2, 3, 4, 5, 6, 7, 8),
Var1 = c(0.1 , 0.5, 0.7, 0, 0, 0, 0.5, 0.2),
Var1PA = c("Present", "Present", "Present", "Absent", "Absent", "Absent", "Present", "Present"),
Var2 = c(0, 0, 0, 0, 0.1, 0.5, 0.7, 0.2),
Var2PA = c("Absent", "Absent", "Absent", "Absent", "Present", "Present", "Present", "Present"),
Disease = c("Case", "Control", "Case", "Control", "Case", "Control", "Case", "Control"))
Ich mag für jeden Fall und jede Steuerung innerhalb jeden var Prozentsatz anwesend und abwesend berechnen und bin nicht in der Lage es mit prop Tabelle zu tun,
vars <- c('Var1PA', 'Var2PA')
tt <- data.frame(prop.table(as.table(sapply(df[, vars], table)), 2) * 100)
##above line does not calculate the percentage of present absent individually for cases
##and controls within each var
wenn ich in der Lage bin es dann zu tun ich kann ggplot2 verwenden zu zeichnen:
ggplot(tt, aes(Disease, Freq)) +
geom_bar(aes(fill = Var1), position = "stack", stat="identity") + facet_grid(~vars)
Wie bekomme ich Prozent für Fälle (anwesend und abwesend) und Kontrollen (anwesend und abwesend) für jeden des vars? Vielen Dank!
Hallo Gregor, danke für die Lösungen! Sehr coole Verwendung von dplyr und tidyr Funktionen. Eine kurze Frage, was bedeuten die negativen Zeichen '-SampleID -Disease'? Auch hatte ich bisher noch keine extensive Verwendung von '%>%' gesehen. Soll das vermieden werden, mehrere neue Zwischen-dfs zu benennen? –
Hallo Gregor, kurze Frage, in deinem Code kann man 'ends_with (" PA ")' mit einem generischen wie einem Vektor von Strings ersetzen. Angenommen, ich biete 'vars = c (" Var1 "," Var2 "," Var3 ")' an, kann "wählen" stattdessen diesen Vektor verwenden? Ich habe mehrere Variablen, die mit PA enden und ich möchte nur einige von ihnen selektiv darstellen. Danke, Manasi –
Ich fand eine Lösung in der Dokumentation mit 'one_of (vars)' Falls jemand diese Kette liest! –