2390 shaares
164 results
tagged
R
Un site intéressant
Le placeholder _ est en effet plus simple. Ça donne
iris |> lm(Sepal.length~factor(Species), data=_)
Effectivement, c'est plus clair. À partir de 4.2.
iris |> lm(Sepal.length~factor(Species), data=_)
Effectivement, c'est plus clair. À partir de 4.2.
Ah ben ça va peut-être pas rester... dommage, j'aimais bien.
Gargl, ça reste expérimental. J'espère que ça va finir par être résolu cette affaire, j'aime bien ça.
En définissant :
Sys.setenv(`_R_USE_PIPEBIND_` = TRUE)
On peut utiliser des fonctions lambda de la façon suivante :
iris |> . => lm(Sepal.Length ~ factor(Species), data=.)
Parce que |> est un pipe, et . => définit une fonction lambda prenant l'argument .
Sys.setenv(`_R_USE_PIPEBIND_` = TRUE)
On peut utiliser des fonctions lambda de la façon suivante :
iris |> . => lm(Sepal.Length ~ factor(Species), data=.)
Parce que |> est un pipe, et . => définit une fonction lambda prenant l'argument .
Won’t you be my neighbor: partie montrant comment n'importer qu'une partie d'une couche trop lourde avec wkt_filter
Vérifier dans quel sens tourne la liste des sommets d'un polygone
À garder sous le coude.
On dit "an R package"
> For those LATEX practitioners who intend to produce documents in PDF, this book does not seem to make a compelling argument that they ought to change their habits. Markdown files are processed into LATEX during document rendering. The LATEX file is then compiled by the same PDF tools that authors currently use, such as pdflatex. Because rendering R markdown to LATEX may introduce errors, my opinion is that LATEX users should continue to prepare documents with LATEX.
Je suis assez d'accord, ça rejoint mon expérience. Finalement, perso, je reste sous LaTeX. En plus :
> While working on the R package stationery, I found that changing the style of an R Markdown document could require quite a lot of work. Such limitations are subtle, and can only be discovered by trial and error. The success with R Markdown for intermediate and advanced users will depend on their willingness to study capabilities of third-party software (Pandoc, Bootstrap (getbootstrap.com), etc.).
Oui, je suis assez d'accord. R markdown, c'est bien tant qu'on reste dans les sentiers battus. Dès qu'on veut des trucs un peu spécifiques ça peut être l'enfer rapidement. C'est pratique tant qu'on reste sur des docs simples.
Je suis assez d'accord, ça rejoint mon expérience. Finalement, perso, je reste sous LaTeX. En plus :
> While working on the R package stationery, I found that changing the style of an R Markdown document could require quite a lot of work. Such limitations are subtle, and can only be discovered by trial and error. The success with R Markdown for intermediate and advanced users will depend on their willingness to study capabilities of third-party software (Pandoc, Bootstrap (getbootstrap.com), etc.).
Oui, je suis assez d'accord. R markdown, c'est bien tant qu'on reste dans les sentiers battus. Dès qu'on veut des trucs un peu spécifiques ça peut être l'enfer rapidement. C'est pratique tant qu'on reste sur des docs simples.
Intéressant: les générateurs de nombres pseudo-aléatoires peuvent produire 2^32 valeurs différentes. En appliquant le paradoxe des anniversaires, cela veut dire que si l'on tire au sort 1 millions de valeurs, on aura en moyenne 116 valeurs dupliquées. Sous R :
sum(duplicated(runif(1e6)))
[1] 114
Rigolo.
sum(duplicated(runif(1e6)))
[1] 114
Rigolo.
Jolie table sous R
À creuser en détail...
Note pour utiliser docker pour tester des packages sous R. Installation de docker décrite ici:
https://docs.docker.com/install/linux/docker-ce/debian/
Puis, si on a un container à lancer, par exemple jakubnowosad/geocompr_proj6 (qui contient ici une version de R avec sp configuré pour Proj6). L'adresse du container sur dockerhub est https://hub.docker.com/r/jakubnowosad/geocompr_proj6. Pour récupérer le container et l'exécuter:
sudo docker run -d -p 28787:8787 -v $HOME/MesLogiciels/adehabitat:/home/rstudio/ -e PASSWORD=glouglou jakubnowosad/geocompr_proj6
On n'en garde que la fin. On utilise -d pour le lancer en daemon, -p port_de_moi:port_du_serveur, -v pour monter mon répertoire de travail sur le répertoire de travail (rstudio) du container, -e pour définir le mot de passe, et on termine par l'adresse.
Ça lance le container docker en tâche de fond. Ensuite dans un navigateur, on lance
http://localhost:28787/
username: rstudio, mot de passe glou, et après, on peut commencer à bosser dans le container.
Pour identifier les containers qui tournent :
sudo docker ps
On identifie l'ID, par exemple 908093. Pour l'arrêter :
sudo docker stop 908093
Et wala.
https://docs.docker.com/install/linux/docker-ce/debian/
Puis, si on a un container à lancer, par exemple jakubnowosad/geocompr_proj6 (qui contient ici une version de R avec sp configuré pour Proj6). L'adresse du container sur dockerhub est https://hub.docker.com/r/jakubnowosad/geocompr_proj6. Pour récupérer le container et l'exécuter:
sudo docker run -d -p 28787:8787 -v $HOME/MesLogiciels/adehabitat:/home/rstudio/ -e PASSWORD=glouglou jakubnowosad/geocompr_proj6
On n'en garde que la fin. On utilise -d pour le lancer en daemon, -p port_de_moi:port_du_serveur, -v pour monter mon répertoire de travail sur le répertoire de travail (rstudio) du container, -e pour définir le mot de passe, et on termine par l'adresse.
Ça lance le container docker en tâche de fond. Ensuite dans un navigateur, on lance
http://localhost:28787/
username: rstudio, mot de passe glou, et après, on peut commencer à bosser dans le container.
Pour identifier les containers qui tournent :
sudo docker ps
On identifie l'ID, par exemple 908093. Pour l'arrêter :
sudo docker stop 908093
Et wala.
Cool !
Cool, bouquin gratuit.
pratique. Et maintenant, installé.
Très intéressant
Ah tiens, un package sur R avec interfaces vers les spatial data infrastructure. Ça a l'air intéressant... À suivre...
Sur l'absence de garantie pour l'utilisation de R.
Marrant : ils prennent une image en bitmap (noir et blanc), échantillonnent des pixels, et utilisent un algo pour trouver le plus court chemin passant par les pixels échantillonnés (pb du voyageur de commerce). Résultat: un portrait en une ligne.
Le mec va plus loin: il va prendre une image en niveaux de gris, et va échantillonner les pixels proportionnellement au poids défini par le niveau de gris. Il répète le processus 250 fois, et ça rend l'impression d'une image faite au crayon. Ici : https://fronkonstin.com/2018/04/17/pencil-scribbles/
Le mec va plus loin: il va prendre une image en niveaux de gris, et va échantillonner les pixels proportionnellement au poids défini par le niveau de gris. Il répète le processus 250 fois, et ça rend l'impression d'une image faite au crayon. Ici : https://fronkonstin.com/2018/04/17/pencil-scribbles/
Super tutos sur R, sf et ggplot2, de Mel Moreno et Mathieu Basille. Transféré à tous les collègues.
Rigolo
Ça déchire !
LA VACHE ! J'avais jamais vu, mais sf utilise des index spatiaux !!!
Super intro. Et je découvre au passage le magistral package mapview.
Code intéressant: inclusion des inverse distances au carré comme pondération dans un test d'autocorrélation.
Rigolo.
Ressource intéressante.
Tout est dans le titre. Intro à sf et sp.
Ensemble de ressources pour le spatial sous R
Point de vue d'informaticien sur R. Très drôle.
Utilisation de R pour l'optimisation combinatoire. Sous classe : on cherche à optimiser une fonction objectif linéaire avec des contraintes d'inégalité le tout impliquant des variables entières. Exemple, le problème du sac à dos. Plein de ressources pour ça.
Lié au précédent : qu'est-ce que la vectorisation sous R.
L'époque où les boucles for étaient lentes sous R est révolue. Les fonctions lapply et sapply font des boucles, en interne.
Par contre, redimensionner un objet (ajouter une colonne à une matrice) prend du temps parce qu'il faut à chaque fois réallouer la mémoire. Si on sait quelle taille finale l'objet doit faire, on gagne du temps à initialiser la matrice, puis à la remplir, plutôt que de faire du cbind à chaque fois.
Sinon, on peut utiliser une liste, car les éléments d'une liste ne sont pas localisés de façon contigüe dans la mémoire, donc pas besoin d'allouer toute la liste à chaque fois.
Essayer de viser la vectorisation au maximum. Gaffe, sapply/lapply ne sont pas des fonctions vectorisées : ce sont des boucles for cachées.
Par contre, redimensionner un objet (ajouter une colonne à une matrice) prend du temps parce qu'il faut à chaque fois réallouer la mémoire. Si on sait quelle taille finale l'objet doit faire, on gagne du temps à initialiser la matrice, puis à la remplir, plutôt que de faire du cbind à chaque fois.
Sinon, on peut utiliser une liste, car les éléments d'une liste ne sont pas localisés de façon contigüe dans la mémoire, donc pas besoin d'allouer toute la liste à chaque fois.
Essayer de viser la vectorisation au maximum. Gaffe, sapply/lapply ne sont pas des fonctions vectorisées : ce sont des boucles for cachées.
Multi-agent programming environment. Avec interface sous R programmable ici : https://github.com/PredictiveEcology/NetLogoR
Des podcasts sur la data science.
Pourquoi utiliser Viridis: 7% d'erreur à identifier une discontinuité, vs 28% pour rainbow.
À creuser, le package semble sympa.
Tiens je vais essayer ça.
Et celui-ci aussi. À lire donc.
Super papier, via Mathieu.
Un shaded relief sous R. S'appuie sur le package metR du gars sur github
Package units, pour gérer les unités de mesure sous R.
Faut vraiment que je me penche sur ces nouveaux packages
Un bouquin intéressant sur le text mining. Je pense que j'en aurai bientôt besoin...
Un site intéressant
Démarche pour générer de l'art ASCII exécutable sous R. Marrant
Il est rigolo ce site qui explique l'utilisation de purrr.
Délire ! On peut envoyer des mails avec R !
Un site de référence pour ggplot2. Assez génial.
Un nouveau package sous R pour l'analyse de mouvements. Basé sur l'analyse de récursion. M'a l'air pas mal du tout, mais pour le moment, j'ai lu qu'en diagonale.
De l'intérêt de viridis comme palette par défaut, intérêt mesuré par des études sur la perception.
Package intéressant !
Une personne intéressante à suivre, semble-t-il. Son package COGugaison est un package toujours bon à garder sous le coude, pour identifier les changements de noms, de code, etc des communes françaises.
La palette viridis comme palette de couleur idéale.
Le package a l'air génial
Le format feather permettant d'échanger des données entre R et python.
Plein de zouli thèmes pour ggplot2
La vache ! faut que je creuse le blog, il a l'air génial...
Données disponibles et super-représentations graphiques de la fameuse étude de Sherman-Kent sur la perception des expressions du type "c'est probable", "je suis presque certain", etc.
Package tmap, pour faire des cartes splendides.
Un package qui commence à pas mal faire parler de lui. À creuser.
Marrant.
Pas mal...
Ah oui... si on est en panne d'inspiration pour les graphes, ça donne des idées !
sf repose sur le tidyverse. Approche intéressante...
À étudier sérieusement.
OK, je me lance dans le tidyverse, on va bien voir. Une explication de la fonction map.
Décidément, je n'arrête pas d'en entendre parler en ce moment. Ma prochaine lecture : Advanced R programming par Wickham.
Article intéressant. Il réussit à me convaincre... à passer aux pipes. Je suis dans le même cas que lui, et je me retrouve dans ses arguments. Mais comme les commentaires le soulignent (y compris lui-même), on a pas mal à y gagner, en termes cognitifs, de flexibilité et de performance. Le rejet est surtout lié à nos vieilles habitudes.
Bon.
Ok, je vais peut-être m'y mettre. Pas pour les packages ou les fonctions (même Wickham tend à le décourager), mais pour l'exploratoire au quotidien.
À suivre
Bon.
Ok, je vais peut-être m'y mettre. Pas pour les packages ou les fonctions (même Wickham tend à le décourager), mais pour l'exploratoire au quotidien.
À suivre
Excellente explication du principe de l'évaluation non-standard sous R, qui permet aux fonctions d'accéder non seulement aux valeurs des objets passés en arguments, mais aussi les expressions associées. M'a l'air pas mal ce bouquin, il est sur ma liste de lecture...
C'est aussi mon cas. À chaque fois que j'essaie de bouger de ça, je me retrouve à passer plus de temps à essayer de comprendre le tidyverse que le bon vieux base R. J'ai peut-être tort.
Je vais essayer de voir si ça vaut vraiment le coup de bouger. Perso, j'ai un peu la flemme, vu que je suis bien efficace en base R, mais si ça permet de gagner encore en efficacité, pourquoi pas ?
À suivre...
Je vais essayer de voir si ça vaut vraiment le coup de bouger. Perso, j'ai un peu la flemme, vu que je suis bien efficace en base R, mais si ça permet de gagner encore en efficacité, pourquoi pas ?
À suivre...
Marrant ce blog. Elle regarde quelles sont les graines les plus utilisées pour générer des nombres aléatoires. Sans surprise, des 1234, 12, 10, etc. Mais d'autres valeurs plus surprenantes, comme 13121098, visiblement choisie pour un cours coursera et réutilisée par tous ceux qui suivent le cours... Ou 42 mais là on sait pourquoi.
Au passage, je m'abonne au RSS.
Au passage, je m'abonne au RSS.
Intéressant : un article sur RQGIS qui montre les possibilités du package. Pas mal du tout...
Ayant eu à réinstaller tous mes packages R récemment, je stocke ici le code utilisé :
install.packages(c("adehabitatHS", "raster", "maptools","rgdal","spatstat","knitr","ggplot2","xtable","splancs",
"sp","MCMCglmm","devtools","rjags","coda","igraph","openssl","rpanel","gsl","adehabitat",
"RgoogleMaps","devtools","rgeos","ggmap","RODBC", "tidyverse","sf","lme4","rgeos","car","ggplot2","stringr","lubridate"), dep=TRUE)
library(devtools)
install_github("ClementCalenge/oncfsMisc")
install_github("ClementCalenge/metroponcfs")
install_github("ClementCalenge/scankd")
install_github("ClementCalenge/scsl")
install_github("ClementCalenge/roedeer3sites")
install_github("thomasp85/gganimate")
install.packages(c("adehabitatHS", "raster", "maptools","rgdal","spatstat","knitr","ggplot2","xtable","splancs",
"sp","MCMCglmm","devtools","rjags","coda","igraph","openssl","rpanel","gsl","adehabitat",
"RgoogleMaps","devtools","rgeos","ggmap","RODBC", "tidyverse","sf","lme4","rgeos","car","ggplot2","stringr","lubridate"), dep=TRUE)
library(devtools)
install_github("ClementCalenge/oncfsMisc")
install_github("ClementCalenge/metroponcfs")
install_github("ClementCalenge/scankd")
install_github("ClementCalenge/scsl")
install_github("ClementCalenge/roedeer3sites")
install_github("thomasp85/gganimate")
The Most Unexpected Discovery of An R Language Feature - ... in a most unusual way - Yihui Xie | 谢益辉
Tiens je connaissais pas non plus.
Sous R dans une fonction prenant ... comme argument, ..1 indique le premier argument, ..2 le deuxième, etc. C'est rigolo. Bon après je vois pas bien à quoi ça peut servir... Mais c'est rigolo.
Sous R dans une fonction prenant ... comme argument, ..1 indique le premier argument, ..2 le deuxième, etc. C'est rigolo. Bon après je vois pas bien à quoi ça peut servir... Mais c'est rigolo.
OK il m'a convaincu je passe à saveRDS
Tiens? Une analyse de la distribution spatiale des crimes et delits à Londres avec adehabitathr.
Quelques bonnes pratiques de programmation sous R.
Maintenant, il faut enregistrer les routines C dans les packages R. Bonne explication de comment faire.
Des zoulies palettes pour faire des zoulies cartes sous R. Ça nous changera de l'éternel terrain.colors()
Intéressant: un package qui permet de manipuler du pdf dans R. Assez bluffant.
J'ignorais également : si x est une liste x[[c(2,3)]] est identique à x[[2]][[3]]
En outre, si x est une matrice à n lignes et p colonnes, et si i est une autres matrice à r lignes et deux colonnes (la première colonne correspondant aux indices de lignes et la seconde aux indices de colonne), alors x[i] va renvoyer un vecteur contenant les r éléments décrits dans i (i.e. c(x[i[1,1], i[1,2]], x[i[2,1], i[2,2]], etc.)).
Je savais pas.
En outre, si x est une matrice à n lignes et p colonnes, et si i est une autres matrice à r lignes et deux colonnes (la première colonne correspondant aux indices de lignes et la seconde aux indices de colonne), alors x[i] va renvoyer un vecteur contenant les r éléments décrits dans i (i.e. c(x[i[1,1], i[1,2]], x[i[2,1], i[2,2]], etc.)).
Je savais pas.
Tiens un nouvel IDE pour R spécialisé dans la modélisation écologique. A voir...
Ah tiens, ya un papier sur le package. À lire.
Sans déconner... De Yihui Xie, un package permettant de faire des présentations directement depuis R.
Ce mec est génial...
Ce mec est génial...
L'explication de l'évaluation vue par le tidyverse. Via Mathieu.
Une explication sympa de substitute sous R
Via Mathieu. Ya deux-trois graphiques qui laissent rêveurs... à creuser plus en détail.
Ah ben voilà, maintenant, je comprends ce qui se passe avec mon programme: la réponse de sds est limpide.
J'ai écrit un programme qui lit des raster, les affiche avec un plotRGB, met un point avec un buffer dessus, sauve l'image, et vire les raster. À la fin, un coup de rm(), un coup de gc(), et on répète ça sur un bon millier de cartes.
Pourtant, toutes les 10 cartes, on a:
Error: cannot allocate vector of size 9.6 Mb
Et après, on a beau tourner le truc dans tous les sens, plus moyen de faire quoi que ce soit. Et quand je regarde l'environnement, il est vide, ou quasi.
Trois fonctions par ci par là, un data.frame de 30 lignes, une vingtaine de tout petits objets, mais ne constituant pas un 1Mo de mémoire bouffée. Quasi-vide quoi. Et non seulement l'environnement est vide, mais la mémoire sous linux n'est qu'à moitié remplie (i.e. pas des masses de programmes tournant en même temps). Et pourtant, je peux pas allouer un vecteur, même de taille modeste: plus de place. C'était surréaliste. Là, l'explication de sds est limpide:
"The R garbage collector is imperfect in the following (not so) subtle way: it does not move objects (i.e., it does not compact memory) because of the way it interacts with C libraries (...). This means that if you take turns allocating small chunks of memory which are then discarded and larger chunks for more permanent objects (this is a common situation when doing string/regexp processing), then your memory becomes fragmented and the garbage collector can do nothing about it: the memory is released, but cannot be re-used because the free chunks are too short.
The only way to fix the problem is to save the objects you want, restart R, and reload the objects. "
Eh ben, moi j'ai pas le cul sorti des ronces comme dirait l'autre...
J'ai écrit un programme qui lit des raster, les affiche avec un plotRGB, met un point avec un buffer dessus, sauve l'image, et vire les raster. À la fin, un coup de rm(), un coup de gc(), et on répète ça sur un bon millier de cartes.
Pourtant, toutes les 10 cartes, on a:
Error: cannot allocate vector of size 9.6 Mb
Et après, on a beau tourner le truc dans tous les sens, plus moyen de faire quoi que ce soit. Et quand je regarde l'environnement, il est vide, ou quasi.
Trois fonctions par ci par là, un data.frame de 30 lignes, une vingtaine de tout petits objets, mais ne constituant pas un 1Mo de mémoire bouffée. Quasi-vide quoi. Et non seulement l'environnement est vide, mais la mémoire sous linux n'est qu'à moitié remplie (i.e. pas des masses de programmes tournant en même temps). Et pourtant, je peux pas allouer un vecteur, même de taille modeste: plus de place. C'était surréaliste. Là, l'explication de sds est limpide:
"The R garbage collector is imperfect in the following (not so) subtle way: it does not move objects (i.e., it does not compact memory) because of the way it interacts with C libraries (...). This means that if you take turns allocating small chunks of memory which are then discarded and larger chunks for more permanent objects (this is a common situation when doing string/regexp processing), then your memory becomes fragmented and the garbage collector can do nothing about it: the memory is released, but cannot be re-used because the free chunks are too short.
The only way to fix the problem is to save the objects you want, restart R, and reload the objects. "
Eh ben, moi j'ai pas le cul sorti des ronces comme dirait l'autre...
Délire! dans knitr, dans les options d'un chunk, on peut définir les lignes du chunk qu'on veut afficher et celles qu'on ne veut pas afficher!!!!
Trop classe!
Trop classe!
Pas mal de choses intéressantes...
Le gars à beaucoup d'excellents arguments pour préférer = à <- sous R. Il arriverait presque à me convaincre. Je dis presque parce que plus d'une fois, les recommandations d'usage sous R se sont terminées par une obligation incontournable. Il y a 15 ans, les développeurs du package ade4 avaient codé l'intégralité du package en utilisant l'underscore comme opérateur d'assignation. Et boum, ça a été interdit. Ça faisait quelque temps que c'était pas recommandé par les développeurs de R. Ya fallu bosser un peu pour corriger ça...
Depuis, je suis discipliné, j'obéis aux recommandations...
Depuis, je suis discipliné, j'obéis aux recommandations...
Un package pour R qui contient de l'ascii art d'animaux qui disent ce qu'on leur demande de dire.
Apparemment, le gars fait un résumé de tout ce qu'il a vu dans les confs useR, et note les points intéressants. Et il fait ça à chaque fois qu'il y va.
Faut que je prenne le temps de creuser tout ça.
Faut que je prenne le temps de creuser tout ça.
Un site qui permet d'évaluer l'impact d'un programmeur dans le domaine scientifique en fonction de trois critères:
* Nombre de citations dans des papiers open access (l'algo n'a pas accès aux papiers derrière un paywall)
* Réutilisation du code par d'autres (basé sur l'algo pagerank de google)
* Nombre de téléchargements
Le site est décrit dans un article de nature: http://www.nature.com/news/the-unsung-heroes-of-scientific-software-1.19100
Apparemment, l'auteur va chercher à ajouter une nouvelle métrique basée sur le nombre de discussions sur internet qui citent un package. Le site indique également que l'on pourra bientôt faire le lien avec l'orcid.
À suivre, donc!
* Nombre de citations dans des papiers open access (l'algo n'a pas accès aux papiers derrière un paywall)
* Réutilisation du code par d'autres (basé sur l'algo pagerank de google)
* Nombre de téléchargements
Le site est décrit dans un article de nature: http://www.nature.com/news/the-unsung-heroes-of-scientific-software-1.19100
Apparemment, l'auteur va chercher à ajouter une nouvelle métrique basée sur le nombre de discussions sur internet qui citent un package. Le site indique également que l'on pourra bientôt faire le lien avec l'orcid.
À suivre, donc!
Sinon, pour chercher dans R, ya ça.
Edit: j'avais pas vu les onglets au sommets des résultats de la recherche, c'est génial, on peut explorer les différents types de résultats, bouquins, articles, etc.
Edit: j'avais pas vu les onglets au sommets des résultats de la recherche, c'est génial, on peut explorer les différents types de résultats, bouquins, articles, etc.
Un site très intéressant que je ne connaissais pas, conçu pour chercher des fonctions dans les 11000 packages de CRAN. Super bien conçu, avec statistiques de téléchargement. On y apprend que adehabitatHR est mon package le plus téléchargé avec 450 téléchargements directs mensuels en moyenne, adehabitatMA le plus téléchargé indirectement (via le biais des dépendances vers d'autres packages) avec plus de 1000 téléchargements mensuels, et qu'il reste en moyenne 190 personnes qui continuent à télécharger chaque mois l'ancienne version d'adehabitat, et ce malgré toutes mes mises en garde sur le fait que j'arrêtais de le maintenir...
Le site contient aussi des historiques de téléchargement, des diagrammes de dépendances et de reverse dependances. Il est participatif, et il y a moyen de s'inscrire pour améliorer les aides.
Et moyen d'exécuter les exemples sans lancer R, directement sur le site. Pas mal.
Vu la difficulté qu'il y a souvent à chercher dans les fonctions de R, je pense que le gars qui a fait ça a tapé très fort.
Le site contient aussi des historiques de téléchargement, des diagrammes de dépendances et de reverse dependances. Il est participatif, et il y a moyen de s'inscrire pour améliorer les aides.
Et moyen d'exécuter les exemples sans lancer R, directement sur le site. Pas mal.
Vu la difficulté qu'il y a souvent à chercher dans les fonctions de R, je pense que le gars qui a fait ça a tapé très fort.
Intéressant: une communauté de gens qui partagent plein de trucs autour des couleurs, notamment des palettes.
Encore plus intéressant, le package colourlovers sous R permet d'importer facilement ces palettes sous R.
Encore plus intéressant, le package colourlovers sous R permet d'importer facilement ces palettes sous R.