2369 shaares
164 results
tagged
R
Maintenant, quand on soumet un package à CRAN, il faut aussi checker les fuites de mémoires:
R CMD check --as-cran --use-valgrind monpackage_1.tar.gz
Et ce, avec la dernière version de développement de R (laquelle doit nécessairement être compilée depuis les sources -- et elle change tous les deux jours -- et d'une façon particulière pour avoir les tests demandés). Avant pour soumettre une nouvelle version, il fallait une demi-heure. Maintenant, il faut une journée...
C'est de plus en plus compliqué de maintenir des packages sous R...
EDIT: Bon, en fait, il vaut mieux adapter les instructions du manuel de R à son cas perso plutôt que de récupérer des infos secondaires. Pour moi, ça donne ça:
1. Si on est sur une nouvelle machine qui a pas encore ça, créer un répertoire /home/username/.R/ et un fichier Makevars dedans contenant la ligne suivante:
CC = gcc-4.9 -std=gnu99 -fsanitize=undefined -fno-omit-frame-pointer
Bon normalement ya d'autres choses à rajouter quand on fait du fortran, du c++, etc. Moi, m'en fous, je fais que du c. Ça ça servira à compiler le code C du package que je développe (ajoute les flags adéquats à R CMD check, R CMD build, et R CMD shlib). Noter aussi que la ligne sera à adapter en fonction de la version de gcc.
2. Éditer le fichier config.site des sources de R-devel, et définir les variables suivantes:
CC="gcc-4.9 -std=gnu99 -fsanitize=undefined"
CFLAGS="-fno-omit-frame-pointer -O2 -Wall -pedantic -mtune=native"
le fsanitize=undefined définit l'usage de l'ubsan lors de la compilation et du debuggage, le fno-omit-frame-pointer n'est pas toujours obligatoire mais si on le met pas ça fait planter certaines machines. Le mtune correspond à une autodétection du CPU utilisé pour le build, et va produire du code optimisé pour ma machine. Pour le reste, rien de nouveau par rapport à une compilation classique.
Idem, gaffe ici aux versions de gcc
3. Configurer R-devel pour la compilation:
./configure --enable-R-shlib --enable-memory-profiling --with-tcl-config=/usr/lib/tcl8.5/tclConfig.sh --with-tk-config=/usr/lib/tk8.5/tkConfig.sh
Idem, gaffe aux versions de tcl et tk
4. compiler R-devel classiquement avec make et sudo make install
5. lors du check du package:
R CMD check --as-cran --use-valgrind monpackage_1.tar.gz
C'est là que cette fortune de R prends tout son sens:
I'm still confused about how to avoid the wrath of the CRAN-devel daemon, whose
appetite for new morsels of developer flesh seems ever increasing and makes
keeping even a stable package up-to-date a moving target.
-- Michael Friendly (about checking packages for CRAN)
R-devel (September 2013)
R CMD check --as-cran --use-valgrind monpackage_1.tar.gz
Et ce, avec la dernière version de développement de R (laquelle doit nécessairement être compilée depuis les sources -- et elle change tous les deux jours -- et d'une façon particulière pour avoir les tests demandés). Avant pour soumettre une nouvelle version, il fallait une demi-heure. Maintenant, il faut une journée...
C'est de plus en plus compliqué de maintenir des packages sous R...
EDIT: Bon, en fait, il vaut mieux adapter les instructions du manuel de R à son cas perso plutôt que de récupérer des infos secondaires. Pour moi, ça donne ça:
1. Si on est sur une nouvelle machine qui a pas encore ça, créer un répertoire /home/username/.R/ et un fichier Makevars dedans contenant la ligne suivante:
CC = gcc-4.9 -std=gnu99 -fsanitize=undefined -fno-omit-frame-pointer
Bon normalement ya d'autres choses à rajouter quand on fait du fortran, du c++, etc. Moi, m'en fous, je fais que du c. Ça ça servira à compiler le code C du package que je développe (ajoute les flags adéquats à R CMD check, R CMD build, et R CMD shlib). Noter aussi que la ligne sera à adapter en fonction de la version de gcc.
2. Éditer le fichier config.site des sources de R-devel, et définir les variables suivantes:
CC="gcc-4.9 -std=gnu99 -fsanitize=undefined"
CFLAGS="-fno-omit-frame-pointer -O2 -Wall -pedantic -mtune=native"
le fsanitize=undefined définit l'usage de l'ubsan lors de la compilation et du debuggage, le fno-omit-frame-pointer n'est pas toujours obligatoire mais si on le met pas ça fait planter certaines machines. Le mtune correspond à une autodétection du CPU utilisé pour le build, et va produire du code optimisé pour ma machine. Pour le reste, rien de nouveau par rapport à une compilation classique.
Idem, gaffe ici aux versions de gcc
3. Configurer R-devel pour la compilation:
./configure --enable-R-shlib --enable-memory-profiling --with-tcl-config=/usr/lib/tcl8.5/tclConfig.sh --with-tk-config=/usr/lib/tk8.5/tkConfig.sh
Idem, gaffe aux versions de tcl et tk
4. compiler R-devel classiquement avec make et sudo make install
5. lors du check du package:
R CMD check --as-cran --use-valgrind monpackage_1.tar.gz
C'est là que cette fortune de R prends tout son sens:
I'm still confused about how to avoid the wrath of the CRAN-devel daemon, whose
appetite for new morsels of developer flesh seems ever increasing and makes
keeping even a stable package up-to-date a moving target.
-- Michael Friendly (about checking packages for CRAN)
R-devel (September 2013)
Pour générer des animations flash à partir de pdf (très pratique pour le package animation)
Ah bon, ya ce package de Martin Mächler sous R qui permet de faire des calculs en précision arbitraire. Bon ben je sais pas pourquoi je cherche ailleurs, ya vraiment tout sous R...
Le gars a développé une méthode de mesure de recouvrement de niche. Bon, le gars parle de niche fonctionnelle (version eltonienne), mais son approche doit pouvoir s'étendre aux niches grinelliennes. Il met son papier en accès libre. À lire...
Utiliser JAGS pour ajuster du modèle avec autocorrélation spatiale. À garder sous le coude pour le jour où...
Qui pourrait bien arriver plus rapidement que prévu (je crains cependant qu'on ne soit limité en termes de nombre d'unités spatiales que l'on peut intégrer le modèle).
À lire un jour
Qui pourrait bien arriver plus rapidement que prévu (je crains cependant qu'on ne soit limité en termes de nombre d'unités spatiales que l'on peut intégrer le modèle).
À lire un jour
Discussion entre Chambers et Hastie autour de R. M'a l'air intéressant
Bon à savoir. Sous R, quand on subset un spatialpixelsdataframe par toto[1:10, , drop=TRUE], le drop=TRUE indique que la bounding box sera redéfinie. Sinon, on conserve l'ancienne bbox.
Ça y est, R est passé à 5000 packages!
Marrant: des utilisateurs de R qui se plantent en faisant des graphiques, et qui génèrent, de façon non intentionnelle, des zouli graphes artistiques.
Ça, ça peut être utile. Un lien à forwarder à ceux qui posent des questions sur "le programme ça plante" sans donner le contexte du plantage.
À garder sous le coude
À garder sous le coude
Quand on prépare un cours pour R, et qu'on est pas sûr que malgré les recommandations, il n'y aura pas un clampin qui n'aura pas installé tous les packages, ya ça pour récupérer tous les packages et dépendances.
Tiens? un package pour apprendre les concepts importants en statistique
Noooon! ya un package R pour envoyer des images sur imgur! Fonctionne comme une fonction de device. On tape
imguR()
plot(1:10)
cat(dev.off())
et c'est plié sur imgur!
imguR()
plot(1:10)
cat(dev.off())
et c'est plié sur imgur!
GME, un environnement qui combine Arcview et R. Par Hawthorne Beyer
Site collaboratif de partage de scripts R, astuces, etc.
Plutôt basique apparemment.
Plutôt basique apparemment.
Encore un package R de Wickham. Utile pour le développement de packages, avec toutes les fonctions nécessaires pour faire des checks, etc.
Un plus: install_github qui permet d'installer des packages directement depuis github.
À creuser, vraiment
Un plus: install_github qui permet d'installer des packages directement depuis github.
À creuser, vraiment
Pour faire de l'analyse R dans le cloud. Pas tout compris, à creuser
L'utilisation de foreach dans R, pour paralléliser les calculs un peu longs. Pas mal.
Un exemple d'utilisation de markdown avec R, + conversion via pandoc
Description du package compiler pour R. Encore un programme de Tierney. Décidémment j'aime bien ce gars là.