Ich kompiliere eine PDF mit sweave
und latex
in r
. Ich verwende rjags
für MCMC-Methoden. Das Ausführen dieser Modelle dauert ungefähr eine Stunde. Jedes Mal, wenn ich meinen Code sweave
zum Kompilieren einer PDF-Datei leite, werden auch alle jags
Modelle erneut ausgeführt. Dies macht das Editieren und Herausfinden, wenn ich kleine Syntaxfehler gemacht habe, zu einer Qual, wenn es eine Stunde dauert, das PDF zu kompilieren. Wie behalte ich alle meine Variablen, die von meinem jags
Code generiert werden, aber nicht sweave
haben, jedes Mal zu bewerten? Die Daten sind hier zu finden: https://uwyo-files.instructure.com/courses/481850/files/36253354/course%20files/project4_genomebinom/chrgc.txt?download=1&inline=1&sf_verifier=ea3569eec1ca938fad4122a92e35ff57&ts=1462863980&user_id=569842Wie kompiliere ich ein Latex-Dokument in Sweave, ohne jedes Mal rjags ausführen zu müssen?
Hier ist ein Beispielcode
\documentclass[12pt, letterpaper]{article}
\begin{document}
<<computation,results=hide>>=
humangc <- read.csv("c:\\temp\\RtmpYpMfSP\\data15a4519241c1")
chr<-substr(humangc$chr, 4, 8)
chr[chr=='X']<-23
chr[chr=='Y']<-24
chr<-as.numeric(chr)
humangc<-data.frame(humangc[,-1], chr=chr)
humangc<-humangc[order(humangc$chr, humangc$bp),] ### reorder data by chr
## drop NA data and blocks with fewer than 100000 (10%) valid data
humangc<-humangc[!is.na(humangc$valid) & humangc$valid > 100000,]
### hierarchical Bayesian model in JAGS
bin.beta.beta<-"
model{
for(i in 1:bins){
gc[i] ~ dbinom(p[i], n[i])
p[i] ~ dbeta(chrgc * chrprec, (1-chrgc)*chrprec)
}
chrgc ~ dbeta(1,1) ## chrgc is same as pi
chrprec ~ dunif(0.001,10000) ## chrprec is same as theta
}
"
require(rjags)
for(i in 1:24){
data.jags<-list(gc=humangc$gc[humangc$chr==i],
n=humangc$valid[humangc$chr==i],
bins=length(humangc$gc[humangc$chr==i]))
mod.jags<- jags.model(textConnection(bin.beta.beta),data=data.jags,n.chains=3,n.adapt=1000)
mod.samples<-jags.samples(model=mod.jags, variable.names=c("chrgc", "chrprec"), n.iter=5000,thin=2)
### summarize quantiles of beta and p-values of empirical obs from Beta
gcest<-NULL
gcest$q<-qbeta(c(0.025, 0.5, 0.975),
mean(mod.samples$chrprec[1,,] * mod.samples$chrgc[1,,]),
mean(mod.samples$chrprec[1,,] * (1-mod.samples$chrgc[1,,])))
gcest$p<-pbeta(humangc$perc[humangc$chr==i],
mean(mod.samples$chrprec[1,,] * mod.samples$chrgc[1,,]),
mean(mod.samples$chrprec[1,,] * (1-mod.samples$chrgc[1,,])))
gcest$perc <- humangc$perc[humangc$chr==i]
gcest$bp <- humangc$bp[humangc$chr==i]
## write workspace for chromosome to disk
save.image(paste("Rworkspace_chr", i, sep=""))
}
@
<<echo=F, fig=T, include=F>>=
update(mod.jags)
require(coda)
params <- c("chrgc", "chrprec")
samps <- coda.samples(mod.jags, params, n.iter = 2000)
plot(samps)
@
SOME TRIVIAL TEXT!!!!!!
end{document}
Wie Sie sehen Ich schaffe 24 verschiedene Modelle. Das dauert eine Weile. Wie bekomme ich "EINIGE TRIVIAL TEXT !!!!!!!" um schnell zu erscheinen, wenn ich das pdf kompiliere, vorausgesetzt, dass ich die Variablen benötige, die durch jags
erzeugt werden?
Der Schritt dauert über eine Weile.
Das ist eine Knitr-Option, keine Sweave-Option, aber es ist immer noch ein guter Rat. Maxwell sollte zu knitr wechseln. – user2554330
Sorry, ich vergesse, wo die Linie zwischen Knitr und Sweave ist. Dies wird nicht durch Dokumente unterstützt, die in R Studio immer noch Sweave heißen, selbst wenn sie von knitr verarbeitet werden. – jamieRowen