2013-02-20 20 views
5

Dies sollte schnell zu beantworten:Wie erstelle ich eine Textverbindung aus einer String-Variablen?

Ich möchte jags packages 'jags.model Funktion verwenden. Unter den vielen Argumente braucht es das Argument file:

file - den Namen der Datei, die eine Beschreibung des Modells in die JAGS Dialekt der Sprache BUGS enthält.

Alternativ kann die Datei eine lesbare Textmodusverbindung oder eine vollständige URL sein.

Ich möchte String an dieses Argument übergeben. Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, die Zeichenfolge in eine temporäre Datei zu schreiben und den Dateinamen zu übergeben. Aber ich hoffe, dass es einen einfachen Weg gibt, um eine Zeichenfolge in eine Verbindung umzuwandeln.

Antwort

7

Sie können textConnection wie diese (hier mit der read.csv Funktion, aber ich denke, jags.model sollte die gleiche Art und Weise funktionieren):

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

funktioniert perfekt! –

1

Ich würde über textConnection nur einen kleinen Punkt hinzuzufügen. Ich habe gelegentlich Probleme aufgetreten, wenn ich jags.model(textConnection(x)...) innerhalb einer großen for-Schleife (d. H. Mehr als 125 Iterationen oder so) verwendet. Im Wesentlichen scheint es, dass die textConnections geöffnet wurden, aber nicht geschlossen, und dann würde ich schließlich einen Fehler erhalten, nachdem auch textConnections geöffnet worden war, das besagt, dass all connections are in use.

Ich bin nicht ganz sicher die beste Lösung, aber ich nehme an, Sie so etwas wie tun könnte:

zz <- textConnection(x) 
jags.model(zz, ...) 
close(zz) 
Verwandte Themen