Comment faire apparaître le contenu d'un vecteur de caractères comme un fichier dans R ?

StackOverflow https://stackoverflow.com//questions/10680888

  •  12-12-2019
  •  | 
  •  

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)
Était-ce utile?

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top