Foro de debate

Ejecuciones de R desde PHP

Ejecuciones de R desde PHP

de Raul Herrera Dominguez -
Número de respuestas: 4
Hola a todos, en mi pc tengo la distribución 2.12.1 de R y he instalado manualmente el paquete tm para la minería de texto, necesito hacer una aplicación para el manejo con la minería de texto usando Symfony 2, cuando se ejecuta con el comando exec() de php algunas instrucciones de R se ejecutan pero cuando ejecuto la plantilla desde php con la libreria tm no me responde, me devuelve una variable en blanco, sin embargo cuando ejecuto el mismo código en la consola pues me da el resultado esperado, quisiera si alguien pudiera me ayudara con este tema

Saludos y Gracias de antemano
En respuesta a Raul Herrera Dominguez

Re: Ejecuciones de R desde PHP

de Manuel Muñoz Márquez -
Hola:

He ejecutado código R desde php sin problemas.

¿Con qué instrucción estás llamando a R?

Si pones un ejemplo tal vez sea más fácil ayudarte.

Saludos.
En respuesta a Manuel Muñoz Márquez

Re: Ejecuciones de R desde PHP

de Raul Herrera Dominguez -
hola, gracias por responder

yo también ejecuto el código sin problemas, pero en la consola, cuando lo llamo desde mi aplicación symfony 2 pues no da la respuesta esperada, no se si es que no esta cargando la librería o algo pasa, yo lo estoy llamando con la función exec($comando,$salida), cuando corre pues me muestra un arreglo de salida vacio.

Por ejemplo:

#!/bin/sh R --slave << EOF library(tm) txt <- "/home/raul/Escritorio/texts/txt/" ovid <- Corpus(DirSource("/home/raul/Escritorio/texts/txt/"),readerControl = list(language = "lat")) ovid inspect(ovid[1]) EOF

Esta es la plantilla que al ejecutarse en consola no da problema alguno
pero cuando la ejecuto con la funcion exec($comando,$salida) da esta respuesta:
 {"success":true,"data":""}
Saludos y gracias nuevamente
En respuesta a Raul Herrera Dominguez

Re: Ejecuciones de R desde PHP

de Manuel Muñoz Márquez -
Hola:

Sigues sin dar un ejemplo completo que poder probar.

La verdad es que siempre había usado la función system de php en vez de exec, ya que siempre me ocurría lo que a ti, nunca tenía resultado. Remirando el asunto a raíz de tu mensaje he descubierto mi error: La variable en la que se recoge el resultado de la ejecución debe inicializarse (debe existir) antes de llamar a exec. Con el código siguiente y una versión adaptada del fichero ejemplo.sh (cambiando la ruta a "/tmp") obtengo salida.

<?php
$sal = "";
exec("sh ejemplo.sh", $sal);
echo var_export($sal);
?>

Saludos.