Ich verwende das Paket rethinking
, das über die Funktionen map()
und map2stan()
eine Bayessche Schätzung durchführen kann (letztere als Schnittstelle zu rstan
). map()
und map2stan()
nehmen eine alist()
von Formeln die Wahrscheinlichkeit und priors, wie zu definieren:Wie kann ich eine Zeichenfolge in eine Alist() in R teilen?
alist(
height ~ dnorm(mu, sigma),
mu ~ dnorm(178, 20),
sigma ~ dunif(0, 50)
)
die druckt als:
[[1]]
height ~ dnorm(mu, sigma)
[[2]]
mu ~ dnorm(178, 20)
[[3]]
sigma ~ dunif(0, 50)
Ich versuche, die Auswirkungen von priors zu erforschen, so will ich verschiedene Sätze von Mitteln und Standardabweichungen passieren zu können. Ich kann den priors in ein Semikolon getrennten Zeichenfolge wie erhalten:
s <- "height ~ dnorm(mu, sigma); mu ~ dnorm(178, 20); sigma ~ dunif(0, 50)"
von denen ich glaube, ich soll zu einem alist()
auf ;
und weisen aufteilen können. Aber ich kann diesen letzten Schritt nicht herausfinden.
Ich habe versucht, Variationen:
do.call("alist", unlist(strsplit(s,";")))
und
as.vector(unlist(strsplit(s,";")), mode = "alist")
Erstere nicht mit second argument must be a list
und letztere, weil as.vector()
keine "alist" -Modus haben.
Vielleicht ist die allgemeinere Frage: Wie kann ich eine Zeichenfolge in eine alist()
bekommen? Ich habe die Antwort in this question gelesen, aber ich kann nicht herausfinden, wie man es für dieses spezielle Problem anpasst.
Diese perfekt für einfache Formeln arbeitet, was zugegebenermaßen, was mein Beispiel ist. Kompliziertere mit mehr Termen wie 'mu <- a [block] + bHeight * height 'scheitern, weil sie versuchen, den Ausdruck auszuwerten. 'Fehler in eval (expr, envir, enclos): Objekt 'a' nicht gefunden '. Irgendwelche Gedanken darüber, wie man das schafft? – kmm
@kmm - Wenn Sie eine Menge Ausdrücke als Zeichenfolgen haben, haben Sie größere Fische zum Frittieren. –