2011-02-13 14 views
7

Soy bastante nuevo en R, y una cosa que me ha llamado la atención es que funciona bastante lento. ¿Hay alguna documentación para optimizar R? Por ejemplo, la optimización de Python se describe muy bien here. En mi caso particular, estoy interesado en optimizar R para trabajos por lotes.¿Alguna documentación para optimizar el rendimiento de R?

He intentado buscar en Google una respuesta, por supuesto, pero no es exactamente fácil obtener información de Google for R ya que R es un patrón de búsqueda bastante genérico.

+1

@ c00kiemonster, mucho de lo que se aplica a MATLAB, en términos de optimización, también se aplica a R. No es un lenguaje de procedimiento, por lo que tratar de hacer las cosas de procedimiento es una receta para la frustración. Por ejemplo, evite ** for ** loops en más de, por ejemplo, 1000 índices, a toda costa en R. (Son al menos uno, y probablemente dos, órdenes de magnitud más lentos que incluso MATLAB.) Utilice ** aplica ** funciones siempre que puedas ya que el bucle ocurre en un nivel inferior y es, por lo tanto, mucho más eficiente. Además, el administrador de memoria de R es generalmente pobre, así que tenlo en cuenta también. –

+0

@cardinal, buenos consejos. Gracias – c00kiemonster

+3

En lugar de Google, intente http://rseek.org/. – onestop

Respuesta

5

Sí, R es un poco incómodo para un término de búsqueda, por lo tanto, intente con RSiteSearch ("rendimiento") dentro de R - esto buscará en muchas fuentes de documentos R.

2

"Se está ejecutando bastante lento" es muy vago. Hay muchas técnicas para usar R de la manera más eficiente, la regla general es "evitar bucles y vectorizar", pero hay mucho más, como garantizar que los objetos se asignen previamente en lugar de cambiar el tamaño sobre la marcha.

Realmente depende de lo que esté haciendo, así que sea más específico. La documentación estándar contiene muchos consejos básicos y su pregunta realmente no le da la oportunidad a alguien de hacer más que regurgitarlos.

Cuando R está realmente limitado para sus necesidades, puede escribir directamente en un lenguaje compilado como C o utilizar interfaces avanzadas como Rcpp. Para otras herramientas y técnicas que se extienden más allá del kit de herramientas R básico, consulte la vista de tareas "Computación de alto rendimiento" en CRAN.

3

una simple búsqueda en google sobre 'programación eficiente en r' revela los siguientes excelentes recursos. el primer recurso es excelente ya que proporciona una comparación de las formas malas, buenas y mejores de programar una tarea en R. el segundo recurso es más genérico.

  1. http://perswww.kuleuven.be/~u0044882/Research/slidesR.pdf
  2. http://www.bioconductor.org/help/course-materials/2010/BioC2010/EfficientRProgramming.pdf

si usted está buscando en áreas más específicas de la optimización de su código R, una forma más precisa y estoy seguro de que encontrará un experto aquí !!

+0

Su segundo enlace está roto. – Tyler

+0

ahora el primero está roto :) –

Cuestiones relacionadas