Como fazer com que o conteúdo de um vetor de caracteres pareça um arquivo em R?
Pergunta
jags.model
espera um nome de arquivo contendo um modelo BUGS como seu primeiro argumento.Para conter tudo em um script, às vezes uso o writeLines
comando para gravar o modelo BUGS em um arquivo.Por exemplo.,
library(rjags)
writeLines("
model {
for (i in 1:length(Y1)) {
Y1[i] ~ dnorm(Beta0, Beta1)
}
Beta0 ~ dunif(1, 5)
Beta1 ~ dunif(0, 10000)
}
"
, "m1.jags")
mod1 <- jags.model("m1.jags", data=Data)
No entanto, se eu pudesse escolher, não quero que o arquivo seja criado.
Existe uma maneira de criar algum tipo de arquivo virtual em R que contenha o texto?
Eu estava pensando que poderia haver alguma maneira de escrever a string em uma variável usando conexões R de alguma forma para imitar os recursos de um arquivo.
O pseudocódigo aproximado do que eu estava pensando:
m1.jags <- "model {
...
}
"
jags.model(SomeRCommand(m1.jags), data=Data)
Solução
Obrigado @Andrie por me dizer a resposta:ou seja, basta cercar a variável de caractere com o textConnection
função.
Para ser mais completo, aqui está como isso se aplica ao meu problema específico:
m1.jags <- "
model {
for (i in 1:length(Y1)) {
Y1[i] ~ dnorm(Beta0, Beta1)
}
Beta0 ~ dunif(1, 5)
Beta1 ~ dunif(0, 10000)
}
"
, "m1.jags")
mod1 <- jags.model(textConnection(m1.jags), data=Data)