R est typique dans les langages de programmation fonctionnels, un thème commun dans la programmation R est l'évitement de l'itération explicite. Au lieu de coder des boucles, vous exploitez les fonctionnalités de R, qui vous permettent d'exprimer implicitement un comportement itératif. Cela peut conduire à un code qui s'exécute beaucoup plus efficacement, et il peut faire une énorme différence de temps lors de l'exécution de R sur de grands ensembles de données.
Comme vous le verrez, la nature de la programmation fonctionnelle du langage R offre de nombreux avantages:
• Code plus clair et plus compact
• Vitesse d'exécution potentiellement beaucoup plus rapide
• Moins de débogage, car le code est plus simple
• Transition plus facile vers la programmation parallèle
Pour qui ce tutoriel est-il?
Beaucoup utilisent R principalement de manière ad hoc - pour tracer un histogramme ici, y effectuer une analyse de régression et effectuer d'autres tâches discrètes impliquant des opérations statistiques. Mais ce cours s'adresse à ceux qui souhaitent développer des logiciels en R. Les compétences en programmation de nos lecteurs potentiels peuvent aller de n'importe où d'un développeur professionnel à «j'ai suivi un cours de programmation au collège», mais leur objectif principal est d'écrire R code à des fins spécifiques. (Les connaissances statistiques ne seront généralement pas nécessaires.)
Voici quelques exemples de personnes susceptibles de bénéficier de ce tutoriel:
• Analystes employés, par exemple, par un hôpital ou une agence gouvernementale qui produisent régulièrement des rapports statistiques et qui ont besoin de développer des programmes de production à cette fin.
• Les chercheurs universitaires élaborent une méthodologie statistique qui est soit nouvelle soit qui combine des méthodes existantes dans des procédures intégrées qui doivent codifier cette méthodologie afin qu'elle puisse être utilisée par la communauté générale de la recherche.
• Les spécialistes du marketing, du soutien aux litiges, du journalisme, de l'édition, etc., qui ont besoin de développer du code pour produire des présentations graphiques sophistiquées de données.
• Les programmeurs professionnels ayant une expérience dans le développement de logiciels qui ont été assignés par leurs employeurs à des projets impliquant une analyse statistique
• Les étudiants en cours de calcul statistique

En conséquence, ce tutoriel n'est pas un recueil de la myriade de types de méthodes statistiques disponibles dans le merveilleux paquet R. Il s'agit vraiment de programmation et couvre des sujets liés à la programmation qui manquent dans la plupart des autres livres sur R. Je place une programmation sur même les sujets de base. Voici quelques exemples de cette approche en action:
• Tout au long du livre, vous trouverez des sections "Exemple étendu". Celles-ci présentent généralement des fonctions complètes, à usage général, plutôt que des fragments de code iso¬lés basés sur des données spécifiques. En effet, vous pouvez trouver certaines de ces fonctions utiles pour votre propre travail quotidien. En étudiant ces exemples, vous apprenez non seulement comment fonctionnent les constructions R individuelles, mais aussi comment les assembler en un programme utile. Dans de nombreux cas, j'ai
a inclus une discussion sur les alternatives de conception, répondant à la question "Pourquoi l'avons-nous fait de cette façon?"
• Le matériel est abordé en tenant compte des sensibilités du programmeur. Par exemple, dans la discussion sur les trames de données, j'affirme non seulement qu'une trame de données est une liste R, mais que je souligne également les implications de ce fait sur la programmation. Des comparaisons de R à d'autres langues sont également introduites lorsqu'elles sont utiles, pour ceux qui connaissent d'autres langues.
• Le débogage joue un rôle clé lors de la programmation dans n'importe quelle langue, mais il n'est pas souligné dans la plupart des livres R. Dans ce livre, je consacre un chapitre entier aux techniques de débogage, en utilisant l'approche de «l'exemple étendu» pour présenter des démonstrations élaborées de la façon dont les programmes réels sont débogués.
• Aujourd'hui, les ordinateurs multicœurs sont courants même à la maison, et la programmation des unités de traitement graphique (GPU) effectue une révolution tranquille dans le calcul scientifique. Un nombre croissant d'applications R implique de très grandes quantités de calculs, et le traitement en parallèle est devenu un problème majeur pour les programmeurs en R. Ainsi, il y a un chapitre sur ce sujet, qui présente à nouveau non seulement la mécanique mais aussi des exemples étendus.
• Il y a un chapitre séparé sur la façon de tirer profit de la connaissance du comportement interne de R et d'autres facilités pour accélérer le code R.
• Un chapitre discute de l'interface de R avec d'autres langages, tels que C et Python, en insistant sur les exemples étendus ainsi que des conseils sur le débogage.