2013-02-20 2 views
5

Это должно быть оперативно ответить:Как создать текстовое соединение из строковой переменной?

Я хочу использовать пакеты jags 'jags.model. Среди многих аргументов он нужен аргумент file:

file - имя файла, содержащего описание модели в Зубцах диалект языка BUGS.

В качестве альтернативы, файл может быть текстовым подключением или полным URL-адресом.

Я хочу передать строку этому аргументу. Один из способов обойти эту проблему - записать строку во временный файл и передать имя файла. Но я надеюсь, что есть простой способ конвертировать строку в соединение.

ответ

7

Вы можете использовать textConnection подобное (здесь с функцией read.csv, но я предполагаю, jags.model должны работать точно так же):

mytext <- "x,y\n1,2\n3,4" 
read.csv(textConnection(mytext)) 
# x y 
# 1 1 2 
# 2 3 4 
+0

отлично работает! –

1

Я бы просто добавить небольшой пункт о textConnection. У меня иногда возникали проблемы, когда я использовал jags.model(textConnection(x)...) внутри большого цикла (т. Е. Более 125 итераций или около того). По сути, кажется, что текстовые соединения открываются, но не закрываются, а затем я получаю сообщение об ошибке в конце концов после того, как были открыты текстовые соединения, указав, что all connections are in use.

Я не совсем уверен, лучшее решение, но я предполагаю, что вы могли бы сделать что-то вроде:

zz <- textConnection(x) 
jags.model(zz, ...) 
close(zz) 
Смежные вопросы