Interaktiv funktioniert dieses Beispiel gut:
%Vor% Machen Sie nun eine Funktion mit einer Formelschnittstelle und verwenden Sie aes_string
, um dasselbe zu tun, und es funktioniert nicht (Fehler ist: Error in layout_base(data, cols, drop = drop) : At least one layer must contain all variables used for facetting
):
Nach Jorans Trick beziehe ich hier Das ist eine ähnliche Frage, die ich kürzlich gestellt habe. In diesem Fall sieht ggplot2
meine Facetting-Anfrage nicht. Es facet_grid(".~fac2")
zu machen hatte keine Wirkung. Vorschläge? Ich bin ständig über diese Dinge verwirrt. Danke!
Sie können as.formula
und paste
verwenden:
In Ihrem Beispiel ergibt dies:
Ich habe formula.tools
für die Manipulation von Formeln verwendet.
Ich denke, Sie sollten ein separates Argument für die Facettierungsformel haben, ansonsten müssen Sie einen eigenen Parser erstellen, um herauszufinden, was wt ~ am*vs
in Bezug auf die Facettierung bedeutet
etwas wie die Gittergruppierungsidee könnte nützlich sein
wt~am | vs
aber Sie müssten sich in das Gitter vertiefen, um zu sehen, wie sie ihre Formeln parsen (sehen Sie sich latticeParseFormula
- kompliziert an!)
Einfacher, einfach die zwei Formeln zu trennen. Sie können eine Liste von Zeichenvariablen als rhs und lhs für das facet
-Argument an facet_grid
Ich habe auch environment = parent.frame()
benutzt, was in meinen kleinen Tests funktioniert.