2011-01-21 18 views
9

He desarrollado una gran biblioteca de funciones en R. Por el momento solo cargo ("fuente") las funciones al comienzo de todos mis scripts.Paquete R y tiempo de ejecución

He visto que puedo crear paquetes.

Mi pregunta es: ¿mejorará el tiempo de ejecución de mis funciones? (¿transformando el código del intérprete en lenguaje de máquina?)

¿Qué hace la creación del paquete? ¿Crea binarios?

Gracias Fred

Respuesta

14

No es un compilador R embargo Embalaje su código R no va a mejorar su tiempo de ejecución de forma masiva. Tampoco creará binarios para usted; debe compilarlos a partir del paquete tarball (u obtener CRAN o similar para compilarlos para usted). Ahora hay un compilador de bytes para los paquetes de R y R que ahora se compilan por byte de forma predeterminada. Las mejoras de velocidad son, en general, modestas, no esperes velocidad tipo C.

El código de embalaje R simplemente hace exactamente eso; empaqueta el código R, el código que se compilará (C Fortran, etc.), páginas man, documentación, pruebas, etc. en un formato estándar que se puede distribuir a los usuarios e instalar/construir en múltiples arquitecturas.

Los paquetes pueden aprovechar cosas como la carga diferida de modo que los objetos R (sus funciones dicen) solo se cargan cuando es necesario, mientras que la fuente los carga todos en el entorno global (de forma predeterminada).

Si no tiene la intención de distribuir su código, existen pocos beneficios de empaquetamiento solo para su propio uso, pero si empaqueta y escribe documentación y ejemplos/pruebas, es posible que le avisen sobre cambios en el código del paquete que rompen ejemplos o hacen que las pruebas fallen. De esta forma, estará mejor informado sobre la confiabilidad de su código, ¡incluso si solo lo está usando!

+3

Crear un paquete es divertido y "obliga" a documentar sus funciones (si aún no lo ha hecho). Se puede acceder fácilmente a la documentación a través de la ayuda(), que es una de las principales cosas que me gusta de R: la ayuda nunca está lejos u oscurecida. –

+5

Un paquete proporciona un marco sólido para administrar el código R. Siempre los encontré beneficiosos una vez que la colección de funciones crece más allá de uno o dos archivos R de origen, incluso en situaciones de uso personal. – Sharpie

+1

Consulte [R-forge] (https://r-forge.r-project.org/) para crear automáticamente su paquete para diferentes sistemas operativos. – csgillespie

Cuestiones relacionadas