Cómo aprender R como lenguaje de programación [cerrado]

105

Me gustaría saber cómo aprender el lenguaje R como lenguaje de 'programación' en lugar de aprenderlo como un sistema estadístico. Mi pregunta se debe a la falta de comprensión de funciones como parse, eval, etc., que pueden no encontrar un uso frecuente por parte de un usuario de R con una persuasión de 'estadísticas'.

Editar: he estado explorando herramientas como Rpy RSPerl rJava y deseo (al menos) poder comprender conceptos que faciliten la comunicación de R con otros lenguajes de programación.

La disponibilidad de aplicaciones web para R (R-PHP, RApache, etc.) es otro factor de motivación para que obtenga una comprensión más profunda y estructural de R.

Por último, pero no menos importante, me gustaría poder escribir paquetes R para los que tal comprensión sería beneficiosa si no necesaria.

severo
fuente
1
Obtendrá mejores respuestas si puede decir por qué está considerando usar R como lenguaje de programación, en lugar de un sistema estadístico. ¿Está pegando otro software, ya desarrollado en R? ¿Tiene otros programadores que no saben nada más que R, por lo que se ve obligado a desarrollar en él?
Chip Uni
7
Definitivamente existe la necesidad de un libro con un título como "Ingeniería de software estadística con R", que explique R desde el punto de vista de los lenguajes de programación, discuta los principios de la programación funcional y la programación orientada a objetos en R, y se centre realmente en las mejores prácticas. para desarrollar sistemas relativamente grandes.
Harlan
Creo que esta es una de las formas más divertidas de aprender este idioma: tryr.codeschool.com/levels/1/challenges/16
Umit Kaya
Mi voto para reabrir se basa en el hecho de que esta es una pregunta muy votada y en uno de los primeros resultados en Google cuando buscas "stackoverflow r". Tiene 10 años y solo algunas de las recomendaciones siguen vigentes. Además, se ha cerrado la falta de oportunidades para ofrecer material más moderno.
IRTFM
@ 42- ¿No lo consideraría una pregunta de "búsqueda de un tutorial"?
camille

Respuestas:

87

Para empezar, es posible que desee consultar este artículo de John Cook . También asegúrese de leer "The R Inferno" .

Hay muchos buenos recursos en la página de inicio de R , pero en particular, lea "Introducción a R" y "La definición del lenguaje R" .

Algunas preguntas de stackoverflow muy relacionadas:

Mi libro favorito sobre el tema: "Software para análisis de datos: Programación con R", de John Chambers , el creador del lenguaje S.

Shane
fuente
Iba a responder con el mismo enlace. @harshsinghal Asumiendo que no eres un principiante completo en programación, ese enlace es muy útil.
Secko
También voy a responder por el infierno R. Contiene mucho de lo que saqué del libro de Chambers sin la verbosidad y las convicciones religiosas.
eytan
El documento de R inferno es brillante
Federico Giorgi
23

Un buen libro para aprender R-como-lenguaje-de-programación (a diferencia de R-para-estadísticas) es The Art of R Programming , de Norman Matloff.

ingrese la descripción de la imagen aquí

Es muy legible, no asume que eres un científico informático y es bastante económico en comparación con los libros R.

gung - Restablecer a Monica
fuente
18

Preferiría sugerir un comienzo bueno y completo, como The R Book de Michael Crawley. Es un libro completo y fácil de leer sobre las funciones básicas de R, con consejos estadísticos y algunos ejercicios. Se centra mucho en las fortalezas de R (por ejemplo, modelos lineales) y también proporciona trucos de codificación útiles. Me ayudó mucho mientras luchaba con cursos crípticos en línea.

texto alternativo

Federico Giorgi
fuente
2
Estoy de acuerdo - este es un excelente libro introductorio; Crawley escribe con mucha claridad.
Richie Cotton
Es demasiado detallado. El artículo de John Cook anterior es mucho más conciso. Como programador, no necesita una gran parte de "El libro R".
Máximo
14

Soy un aprendiz muy práctico, por lo que este consejo puede ser específico para mi estilo de aprendizaje. Sugeriría que el mejor lugar para comenzar a "aprender a programar" en cualquier idioma implica encontrar problemas fuera de su rango normal de experiencia y luego tratar de resolverlos utilizando un lenguaje de programación.

Los proyectos con los que más me enseñaron cómo programar Rno tenían nada que ver con las estadísticas.

Conocer funciones como parse()y eval()de ninguna manera es una medida para ser "un buen programador de R". Las aplicaciones que requieren un uso intensivo de estas funciones no constituyen la mayor parte del espacio de problemas en el que puede aplicar R. En cambio, creo que debería intentar ser "un buen programador" que sabe R. Esto implica refinar sus enfoques de resolución de problemas.

La programación no es un deporte para espectadores: un buen libro es indispensable como referencia sobre las herramientas disponibles, pero es necesario encontrar algunos problemas en los que perfeccionar sus habilidades.

Sharpie
fuente