Pregunta R pasar el marco de datos a otro programa usando system ()


Tengo un marco de datos que paso a otro programa usando system(). En la configuración actual, primero escribo el contenido del marco de datos en un archivo de texto, luego tengo el system() comando buscar el archivo de texto creado.

df1 <- runif(20)
write(df1, file="file1.txt")
system("myprogram file1.txt")

Tengo 2 preguntas:

1) ¿Hay una manera de pasar un marco de datos directamente sin escribir el archivo de texto?

2) De lo contrario, ¿hay forma de pasar los datos en la memoria como una entidad con formato de texto sin escribir el archivo en el disco?

Gracias por cualquier sugerencia.


5
2017-08-15 15:40


origen


Respuestas:


Puede escribir en cualquier cosa que R llame a conexiones, y eso incluye sockets de red.

Entonces el proceso A puede escribir en la red, y el proceso B puede leerlo sin ningún archivo en disco involucrado, ver help(connections) que incluso tiene un ejemplo de trabajo en la sección "Ejemplos".

Su tema general aquí es la serialización, y R lo hace por usted. También puede pasar los datos de esa manera a otros programas utilizando herramientas que codifican metadatos sobre su estructura de datos, como por ejemplo los Protocol Buffers de Google (soportados en R por la RProtoBuf paquete).


7
2017-08-15 15:55