Mise à jour majeure pour le langage R

La version 4.0.0 du langage R apporte de nombreuses et importantes modifications à la syntaxe, aux chaînes de caractères, au comptage des références, aux unités de grille, etc.

La version 4 de R apporte son lot de nouveautés. (Crédit Photo : Wikipedia)

Désormais disponible, la version 4.0.0 du langage R pour le calcul statistique comporte des modifications de syntaxe du langage et s’enrichit de fonctionnalités relatives à la vérification des erreurs et aux vecteurs longs. La mise à jour a été publiée le 24 avril. Le code source de la version 4.0.0 du langage R est accessible sur cran.r-project.org. Avec l’essor des data sciences et de l’apprentissage machine, le projet GNU R a gagné en popularité : il arrive actuellement au 10e rang de l’indice de popularité Tiobe et au septième rang de l’indice Popularity of Programming Language PyPL.

Parmi les changements et les fonctionnalités introduits dans R 4.0.0, on peut citer :

– Possibilité d’utiliser une nouvelle syntaxe pour spécifier des constantes de caractères _raw_, similaire à celle utilisée en C++, où r « … » et définir une chaîne littérale. Cela facilite l’écriture de chaînes de caractères avec des barres obliques inverses ou des guillemets simples et doubles.

– Le langage utilise désormais par défaut une chaîne de caractères « AsFactors = FALSE », et ne convertit donc plus par défaut les chaînes de caractères en facteurs dans les appels à data.frame() et read.table(). De nombreux paquets s’appuyant sur la méthode précédente devront être mis à jour.

– La fonction générique S3 plot() se trouve désormais dans le package base plutôt que dans le package graphics ; il est préférable d’opter pour les méthodes qui n’utilisent pas le package graphics. Le générique est actuellement réexporté de l’espace de noms graphique pour permettre aux paquets qui l’importent de continuer à fonctionner, mais cela pourrait changer à l’avenir. Les paquets qui définissent des graphiques S4 pour plot() doivent être réinstallés et le code des paquets utilisant ces génériques à partir d’autres paquets doit garantir qu’ils sont importés plutôt que de se fier à la recherche par le chemin de recherche.

– Les méthodes S3 pour les tableaux de classes sont maintenant distribuées pour les objets matriciels.

– Le comptage de référence est désormais utilisé à la place du mécanisme NAMED pour déterminer à quel moment les objets peuvent être mutés en toute sécurité en base code C. Dans certains cas, cela évite la copie et devrait permettre des optimisations futures. La nouvelle modalité devrait également contribuer à faciliter la maintenance du code interne.

– assertError() et assertWarning() peuvent désormais vérifier dans les outils de paquets la présence d’erreurs spécifiques ou d’alertes de classes grâce au nouvel argument secondaire optionnel de classes.

– DF2formula(), l’utilitaire pour la méthode de trame de données formula(), fonctionne désormais sans analyse et sans évaluation explicite.

– Les vecteurs longs sont désormais pris en charge comme argument seq d’une boucle for().

– matrix() convertit désormais les colonnes de caractères en facteurs et les facteurs en entiers.

– skeleton() liste désormais explicitement toutes les exportations dans le fichier NAMESPACE.

– L’implémentation interne des unités de grille a changé. Les seuls effets visibles au niveau de l’utilisateur devraient être un format d’impression légèrement différent pour certaines unités, des performances plus rapides pour les opérations unitaires, et deux nouvelles fonctions, unitType() et unit.psum().

– Les méthodes d’impression (..) utilisent désormais une nouvelle méthode format().

– Les paquets doivent être réinstallés en utilisant la nouvelle version de R.

– Cette version de R est construite à partir de la bibliothèque PCRE2 pour les expressions régulières de type Perl, si elle est disponible.

– Débuts du support de C++ 20.

– Le temps nécessaire pour démarrer un cluster PSOCK homogène sur un localhost comportant de nombreux nœuds a été réduit de manière significative.

– Plusieurs fonctions ont également été dépréciées. Par exemple, la macro F77_VISIBILITY a été supprimée et remplacée par F_VISIBILITY ; la prise en charge obsolète de la spécification de C++ 98 pour l’installation de paquets a été supprimée ; et de nombreuses fonctions obsolètes ont été supprimées des paquets de base et des paquets de méthodes.

chevron_left
chevron_right