2013-02-20 18 views
5

To powinno szybko odpowiedzieć:Jak utworzyć połączenie tekstowe ze zmiennej łańcuchowej?

Chcę użyć funkcji pakietów zębatych "jags.model. Wśród wielu argumentów potrzebuje argumentu file:

file - nazwa pliku zawierającego opis modelu w Jags dialekt języka błędów.

Alternatywnie, plik może być odczytywalnym połączeniem tekstowym w postaci lub pełnym adresem URL.

Chcę przekazać ciąg do tego argumentu. Jednym ze sposobów obejścia tego problemu jest zapisanie ciągu znaków w pliku tymczasowym i podanie nazwy pliku. Ale mam nadzieję, że istnieje prosty sposób na konwersję ciągu znaków w połączenie.

Odpowiedz

7

Można użyć textConnection tak (tu z funkcją read.csv, ale myślę jags.model powinny działać w ten sam sposób):

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

działa idealnie! –

1

Chciałbym tylko dodać niewielką punkt o textConnection. Od czasu do czasu wystąpiły problemy, gdy użyłem jags.model(textConnection(x)...) wewnątrz dużej pętli for (czyli ponad 125 iteracji). Zasadniczo wygląda na to, że textConnections były otwierane, ale nie zamykane, a następnie otrzymywałbym błąd, po którym mogą zostać otwarte textConnections stwierdzające, że all connections are in use.

Nie jestem do końca pewny najlepszego rozwiązania, ale zakładam, że można zrobić coś takiego:

zz <- textConnection(x) 
jags.model(zz, ...) 
close(zz) 
Powiązane problemy