¿dónde está un buen tutorial sobre la creación de un paquete R con código fuente C++? [cerrado]
Estoy en una pérdida cuando empiezo a buscar en configurar scripts. No estoy seguro de cómo crear un paquete R que tenga varias funciones construidas desde C/C++ de tal manera que sea portátil entre Windows y Linux. Mis intentos de modificar las tripas de los paquetes existentes han sido infructuosos.
Cualquier ayuda o enlace sería muy apreciado.
Actualización: Si posible Me gustaría enlazar contra: Aumentar , CUDA , & hwloc
Sin embargo, me doy cuenta de que Boost será una pesadilla y hwloc no será mucho mejor. Así que me conformaría con CUDA. Esta fue la razón por la que me sumergí en el extremo profundo e intenté modificar algunos paquetes existentes para satisfacer mis necesidades (rgl & rglpk). Pero estoy dispuesto a empezar sin dependencias y construir desde cero. Gracias a todos por sus sugerencias!!
2 answers
También estaba bastante perdido cuando escribí mi primer paquete con código compilado. Aquí hay algunos consejos, pero probablemente hay mejor material por ahí.
La pieza principal sobre escribir paquetes R es "Escribir extensiones R". Esta es una guía muy completa, pero que también hace que sea difícil de leer: http://cran.r-project.org/doc/manuals/R-exts.pdf
Aquí hay un pequeño tutorial que encontré en Google una vez que usé primero, que contiene cómo usar el código C: http://www.stat.columbia.edu / ~gelman / stuff_for_blog / AlanRPackageTutorial.pdf
Otra guía sobre paquetes R en general, pero no con código C: http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
Rcpp
es un paquete muy útil para código C++, pero no lo he usado mucho todavía (3 días de hecho). Tiene mucha documentación en el propio paquete.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-08 18:45:29
Mi enfoque predeterminado es aprender cómo otros han resuelto el problema. Hay más de 2800 paquetes CRAN, y muchos han estado allí durante más de una década. El problema es solucionable, y ha sido resuelto.
Ahora bien, también es cierto que la documentación está ahí, pero tal vez dispersa demasiado. Además, los objetivos cambian. Por ejemplo, hace años, todavía usamos src/Makefile
, en estos días eso es muy recomendable contra debido a la necesidad de compilaciones multiarch (en OS X, en Windows, y un día también en Linux).
Así que tratar de mantenerlo simple ayuda. De hecho, puede tener un proyecto C++ válido ... sin nada. Simplemente suelte los archivos fuente en src/
de su paquete foo, y R sabrá cómo compilar libfoo.so
o libfoo.dylib
o ... dependiendo de la plataforma. Y si necesita otros archivos de encabezado, intente usar src/Makevars
. Para dependencias externas se vuelve más complicado y uno lo que tiene que aprender autoconf
et al, pero muchos paquetes skate por con algo simple.
Así que por favor amplíe su pregunta, muestra lo que está fallando y documenta lo que intentaste. Estoy seguro de que podemos ayudarte.
Edit: Y en caso de que desee hacer esto con el paquete Rcpp (que ayuda con la integración de R y C++), entonces hay una viñeta completa a punto de hacer esto en su propio paquete.
Edit 2: Ahora que expandió su pregunta, CUDA es una bestia completamente diferente. Eso es más difícil a medida que mezclas diferentes compiladores, etc. pp. Hay dos paquetes de ejemplo en CRAN, estudia eso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-02 21:30:47