2012-05-21 3 views
4

jags.model ожидает, что имя файла, содержащее модель BUGS, будет первым аргументом. Чтобы скрыть все в одном скрипте, я иногда использую команду writeLines для записи модели BUGS в файл. Например,Как сделать содержимое символьного вектора похожим на файл в R?

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) 

Однако, если бы у меня был мой выбор, я не хочу, чтобы файл был создан.

Есть ли способ создать какой-либо виртуальный файл в R, который содержит текст?

Я думал, что может быть какой-то способ записи строки в переменную с использованием R-соединений каким-то образом, чтобы имитировать функции файла.

Грубая псевдокод, что я подумал:

m1.jags <- "model { 
     ... 
    } 
    " 
jags.model(SomeRCommand(m1.jags), data=Data) 
+4

Да. Используйте 'textConnection' – Andrie

ответ

6

Спасибо @Andrie за рассказывал мне ответ: то есть, просто окружает переменный символы с функцией textConnection.

Для полноты картины, вот как это относится к моей конкретной проблеме:

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^