Como fazer com que o conteúdo de um vetor de caracteres pareça um arquivo em R?

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

  •  12-12-2019
  •  | 
  •  

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)
Foi útil?

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top