2013-02-20 8 views
5

Questa risposta dovrebbe essere rapida:Come creare una connessione testuale dalla variabile stringa?

Desidero utilizzare la funzione jags.model dei pacchetti jags. Tra i molti argomenti di cui ha bisogno l'argomento file:

file - il nome del file che contiene una descrizione del modello in dialetto JAGS della lingua BUGS.

In alternativa, il file può essere una connessione in modalità testo leggibile o un URL completo.

Voglio passare la stringa a questo argomento. Un modo per aggirare questo problema è scrivere la stringa in un file temporaneo e passare il nome del file. Ma spero che ci sia un modo semplice per convertire la stringa in connessione.

risposta

7

È possibile utilizzare textConnection come questo (qui con la funzione read.csv, ma credo che jags.model dovrebbe funzionare allo stesso modo):

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

funziona perfettamente! –

1

vorrei solo aggiungere un piccolo punto su textConnection. Di tanto in tanto ho avuto problemi quando ho utilizzato jags.model(textConnection(x)...) all'interno di un ciclo di grandi dimensioni (ad esempio, più di 125 iterazioni o giù di lì). Essenzialmente, sembra che le textConnections siano state aperte, ma non chiuse, e poi avrei ricevuto un errore dopo che anche textConnections sarebbe stato aperto dichiarando che all connections are in use.

io non sono del tutto sicuro della soluzione migliore, ma suppongo che si possa fare qualcosa di simile:

zz <- textConnection(x) 
jags.model(zz, ...) 
close(zz) 
Problemi correlati