Usando R a través de PHP

Soy relativamente nuevo en R y muy nuevo en la línea de comandos de Linux (Ubuntu). Intento escribir una página en PHP que contenga un comando que me gustaría ejecutar en R y luego pasar los resultados para poder trabajar con ellos. He intentado variaciones del código a continuación, pero solo recibo el mensaje de bienvenida R como mi resultado:

 

Cuando escribo manualmente $ rQuery en la línea de comando, el resultado es el que esperaría: [1] 4.
Sé que debo estar perdiendo algo hacia el final allí, pero no he podido averiguarlo a través de mi propia búsqueda.

Un par de puntos:

  1. Desea --slave como la opción, implica --no-save y desactiva el saludo; ver el manual para más.

  2. Lo que realmente quieres es el excelente R-inside-Apache de Jeff Horner, mira aquí para más . Puede usar frameworks de plantillas como brew también. Lo mejor de todo, Jeff ahora ofrece un paquete .deb para usted: use deb http://ppa.launchpad.net/jeffreyhorner/rapache/ubuntu lucid main en /etc/apt/sources.list .

  3. Si insistes en extraer php, considera el guión más pequeño que escribimos Jeff y yo. Comenzará más rápido que R.

Para algo tan simple, ni siquiera debería usar PHP, porque puede hacerlo únicamente con RApache, brew package y HTML simple (CSS / JS son opcionales). Simplemente lea el manual de RApache y vea el video tutorial de Jeroen Ooms. También deberías leer el brew manual. ¡Jeff realmente hizo un gran trabajo!

En pocas palabras, solo necesita configurar el archivo apache2.conf o .htaccess . En lugar de utilizar las o , puede usar la directiva para que pueda hacer coincidir los archivos con regexpr. Aquí hay un ejemplo .htaccess :

  SetHandler r-script RHandler brew::brew  

Utilizo la extensión de archivo especial .rhtml donde mezclo HTML con syntax R dentro de las tags <% y %> (consulte la documentación brew ). No brew con PHP, porque brew con HTML fue el truco.

De todos modos, dijiste que quieres:

escribir una página en PHP que contenga un comando que me gustaría ejecutar en R y luego pasar los resultados para poder trabajar con ellos

  • sobre la ejecución de comandos desde la entrada del usuario ... bueno ... ¡no lo hagas! ¡Especialmente no permita que los usuarios ejecuten comandos personalizados porque pueden pasar fácilmente comandos de system o file.* Y arruinar su sistema! Puedes usar AppArmor, pero aún está muy lejos ...
  • centrarse en formularios HTML simples y usar las variables POST , GET , COOKIES , FILES y SERVER que proporciona RApache, y luego manipular las entradas dentro del script R
  • sobre "devolver los resultados", puede usar el paquete XML R o rjson (mi favorito, y lo recomiendo). Luego puede pasar el objeto R a la función toJSON y deserializarlo con JavaScript. Por supuesto, eso es cierto solo si sus clientes son navegadores web; de lo contrario, si, por ejemplo, quiere pasar información al sistema integrado, debe usar el estándar XML -way
  • para algo tan simple, no necesitas PHP. De todos modos, debes contactar a Jeroen, sé que usó algo de PHP en su aplicación Stockplot

Para cualquier otra pregunta, use la lista de correo RApache .

... y hola mundo R-webdev! =)

Cualquiera que sea el usuario que Apache esté ejecutando, puede que no tenga las mismas variables de entorno, o permisos que cuando lo ejecutó desde el shell a mano. Averigüe en qué usuario se ejecuta Apache y asegúrese de que tenga los permisos correctos y las variables de entorno.