2011-12-01 23 views
5

me gustaría puerto de la SpecialK Poker Hand evaluator a R. Creo que esto debería ser relativamente fácil usando el Rcpp package, pero no tengo idea de por dónde empezar.portar vigente código C++ para R

Los tutoriales existentes parecen centrarse en el desarrollo de un nuevo código de C++ para su uso en R. En este caso, I have C++ that solves a problem, y quiero utilizar este código en R con una molestia mínima. Si el código fuera una función autónoma, podría compilarlo y vincularlo sobre la marcha con inline, pero esto no funciona aquí.

supongo que esta pregunta tiene 2 partes:

  1. Voy a tener que realizar ningún cambio en la fuente de C++ para que sea compatible con RCPP?
  2. ¿Cómo puedo llamar a este código desde R, dado que no es una función pequeña, autónoma que puedo compilar y vincular dinámicamente usando en línea?

También estoy abierto a usar el Java, Python, o versiones Objective-C del evaluador, pero no creo que esos serán más fáciles de unir a R.

+0

¿Puedo preguntar qué intención tiene U al cambiar el código de C++ a R? – Hauleth

+0

@Hauleth Me gustaría llamar al código de C++ desde R. En este caso, quiero usar las funciones de estadísticas de R para hacer algunas investigaciones básicas de póquer, pero necesito un evaluador manual. No existen paquetes R para evaluar las manos de póquer, por lo que esta parecía ser la mejor opción. – Zach

+0

Tengo un punto. – Hauleth

Respuesta

4

¿Has mirado en Rcpp lo que lo hace bastante libre de dolor para combinar R y C++?

Muchos paquetes lo utilizan para llevar el código de C++ existente a R. También puede ver las preguntas aquí bajo la etiqueta [rcpp]. Documentación bastante extensa en el paquete, en mi sitio y en otros lugares.

+0

Hola Dirk: ¿Cuál es el mejor tutorial para alguien nuevo en C++ que quiere portar algún código existente? – Zach

+0

Eso no es fácil. Para acceder al código de C++, necesita saber algo de C++. Pero literalmente tenemos docenas de ejemplos usando línea en varios lugares, podrías comenzar con esos. Y/o mirando paquetes CRAN "similares" existentes de los que podría tratar de aprender (al vincular a libs existentes). Y, por supuesto, la lista rcpp-devel y sus archivos. –

+0

Gracias. Esperaba que hubiera una solución fácil, pero sospeché que no. – Zach

Cuestiones relacionadas