Comment faire apparaître le contenu d'un vecteur de caractères comme un fichier dans R ?
Question
jags.model
attend un nom de fichier contenant un modèle BUGS comme premier argument.Afin de tout contenir dans un seul script, j'utilise parfois le writeLines
commande pour écrire le modèle BUGS dans un fichier.Par exemple.,
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)
Cependant, si j'avais le choix, je ne souhaite pas vraiment que le fichier soit créé.
Existe-t-il un moyen de créer une sorte de fichier virtuel dans R contenant le texte ?
Je pensais qu'il pourrait y avoir un moyen d'écrire la chaîne dans une variable en utilisant des connexions R d'une manière ou d'une autre pour imiter les fonctionnalités d'un fichier.
Le pseudo code approximatif de ce à quoi je pensais :
m1.jags <- "model {
...
}
"
jags.model(SomeRCommand(m1.jags), data=Data)
La solution
Merci @Andrie de m'avoir donné la réponse :c'est-à-dire qu'il suffit d'entourer la variable de caractère avec le textConnection
fonction.
Par souci d'exhaustivité, voici comment cela s'applique à mon problème spécifique :
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)