2010-11-12 14 views

Respuesta

12

No directamente, es decir, no hay ningún paquete del que conozca que implemente un puente.

Siempre puede llamar a programas externos usando system() pero eso no es elegante ni eficiente. Dicho esto, podría preparar datos en R, escribirlos, llamar a Stata y luego leer los resultados; ver help(system).

+1

Esta es probablemente la mejor solución. Stata tiene un conjunto de herramientas de línea de comandos que le permiten ejecutar un archivo .do/.ado desde el shell (ventanas: http://www.stata.com/support/faqs/win/batch.html o unix/linux: http://fmwww.bc.edu/Gstat/docs/stataunixlinux.html#batch) –

+2

Ahora hay un paquete [RStata] (https://github.com/lbraglia/RStata) en GitHub que intenta crear un puente entre R y Stata. – Thomas

+0

@Thomas RStata merece ser su propia respuesta. – fgregg

3

El problema real es que Stata no tiene un intérprete interactivo al que pueda pasar argumentos.

Dirk tiene razón; simplemente puede continuar y escribir los datos en un formato común (si el tamaño es grande y la velocidad es un problema, el ancho fijo es seguro), pero también puede usar .dta durante todo el proceso, utilizando read.dta en R y lectura nativa en Stata.

Además, en R puede llamar al sistema() puede pasar un archivo do o una cadena que contiene un grupo de comandos Stata.

Por lo tanto, generalmente, intentar usar Stata para esta o aquella tarea puede o no valer la pena, especialmente si hay un equivalente R cerca.