Liste de liens :
Liste de liens :
Améliorer l'intégration actuelle de R dans TXM, en terme d'architecture (performance) et d'UI (expérience utilisateur).
Voir la section “Numerical Characteristics of the Machine” : http://stat.ethz.ch/R-manual/R-devel/library/base/html/zMachine.html
Par exemple, le nombre flottant le plus proche de zéro n'étant pas zéro est indiqué par la constante “.Machine$double.xmin”. Sa valeur sur la machine de MD est 2,225074e-308.
Le projet Rosuda produit JRI qui encapsule R par JNI.
JRI fait partie de rJava.
Attention : le rôle de rJava est d'appeler une JVM depuis R, celui de JRI est inverse, appeler R depuis une JVM. JRI a du être intégré à ce projet pour faciliter sa maintenance.
Voir aussi RCaller https://github.com/jbytecode/rcaller.
StatET est un plugin Eclipse intégrant R et offrant au moins 3 services fondamentaux :
Il scénarise une session de travail R comme un travail dans un projet Eclipse.
On en trouve une description rapide ici : http://lukemiller.org/index.php/2010/04/eclipse-and-statet-a-nice-working-environment-for-r.
Ce plugin présente beaucoup d'intérêt. Il semble par ailleurs offrir plus de services que les environnements intégrant R usuels voire la console R standard : par exemple la recherche dans l'historique de la console R. Ça semble être un concurrent sérieux de JGR et c'est vivant en 2013.
Voir aussi :
Tickets : 635
La 1ere version a été d'ajouter de vérifier l'installation des packages R lors de l'installation. Or, l'installation peut échouée alors que le package fonctionne correctement. La 2e version a été d'ajouter une vérification du chargement des packages R de TXM lors du job (Eclipse) de démarrage de TXM. Or, ce test pose des problèmes de synchronisation (thread) qui font crasher TXM. La 3e version est de rajouter une commande “Vérifier les packages R” (EN= Check R packages) dans le menu Aide de TXM. Cette commande reprend exactement le même test que la version 2 et affiche une fenêtre de dialogue pour indiquer le succès ou non du test.
Code de test des packages :
library("textometry") library("FactoMineR") # cette ligne échoue lors du job de démarrage de TXM.
setwd("TXMHOME/R")
options(max.print=5000)
.libPaths("TXMHOME/R/libraries)
options(repos=\"" + repos + "\")
Réglages spécifiques à RServe :
options(timeout = 3)
<Sys.setenv(http_proxy=\"" + proxyUrl + "\")"/code> * proxyUrl = récupéré depuis la classe org.txm.utils.network.SystemProxyDetector === Suivi des versions de R === R-cran publie des nouvelles versions mineures tous les 3 mois environs. Les packages ne suivent pas forcement ce rythme et des décalages de publications se font. == Mac OS X == Depuis la version 10.10 de Mac OS X, il est nécessaire d'installer [[http://xquartz.macosforge.org|XQuartz]] pour pouvoir produire des graphiques SVG avec R. cela est du au faite que Mac OS X ne livre plus X11 par défaut. (il faut installer XCode) R maintient une version de R (3.2.1 - 2015-06-19) qui fonctionne pour les Mac OS X antérieur à la version 10.9 (Maverick) de Mac OS X. Mais cette version n'est plus maintenue et n'ai pas conseillée pour les versions suivantes de Mac OS X. Dans la version courante de R (3.3.3), l’exécutable de R (ligne de commande) est installé dans %%/usr/local/bin%% anciennement %%/usr/bin/R%% -> c'est pourquoi lorsqu'on installe R-3.3.3, il faut indiquer à TXM le nouveau chemin. Version de R par version de setup TXM : * TXM 0.7.7 - R 3.2.1 * TXM 0.7.8 - R 3.3.2 == Linux == Versions de R en fonction de la version d'Ubuntu : * Ubuntu 12.04 installe par défaut 2.14.1 * Ubuntu 14.04 installe par défaut 3.0.2 * Ubuntu 16.04 installe par défaut 3.2.3 ===== Solution ===== R : * installation : * Windows : installé par TXM * Mac OS X : installé par TXM si absent ou version incompatible * Ubuntu : délégation d'installation a dpkg * packages : * Rserve : module client-serveur basé sur socket (réseau ou pas) * textometry * FactoMineR * + dependances TXM : * préférences de réglages de lancement de R * local : chemin vers le binaire + options * distant : Adresse du serveur Rserve + options * client Java de Rserve (Rosuda) * surcouche Java de manipulation des objets R : (manipulation des Tables lexicales, résultats d'AFC...) * RWorkspace : wrappeur Java de code R bas niveau * LexicalTableImpl * MatrixImpl * SpecificitiesResult * etc. ==== TXM 0.7.7 ==== La version de R dépend de l'OS et du contexte d'installation : * Windows : 3.1.2 embarqué dans TXM * Max OS X : * si R n'est pas présent lors de l'installation : 3.1.2 est installé (livré dans l'archive d'installation de TXM) * Linux : utilise le R installé sinon installe R à l'aide de apt-get (pas de contrôle de version) * Ubuntu 12.04 installe par défaut 2.14.1 * Ubuntu 14.04 installe par défaut 3.0.2 * Ubuntu 16.04 installe par défaut 3.2.3 ==== TXM 0.7.8 ==== Embarquer R dans le setup Ubuntu de TXM pour s'assurer de : * la version de R * l'installation correcte des packages R ==== TXM 0.8.3 ==== Mise à jour de R à la version 4.2.2. Si possible réduire le surplus de place disque lors de l'installation de R : * R + recommended : 190Mo * R + Rserve + textometry + FactoMineR : 450Mo * dont 260Mo pour FactoMineR et ses dépendances === Analyse du volume === La taille des libraries une fois installées varient en fonction de OS. === Ubuntu === L'ensemble fait 387 Mo : <code bash> du -sk R-4.2.2-builded/R-4.2.2 386 920 Ko
FactoMineR fait 4 Mo :
du -sk R-4.2.2-builded/R-4.2.2/library/FactoMineR 3 912 Ko
et dépend de : car, cluster, DT, ellipse, emmeans, flashClust, graphics, grDevices, lattice, leaps, MASS, multcompView, scatterplot3d, stats, utils, ggplot2, ggrepel (voir https://cran.r-project.org/web/packages/FactoMineR/index.html)
Il faut analyser l'ensemble (récursivement) des packages utilisés pour FactoMineR.
Calcul de tous les packages nécessaires au fonctionnement de FactoMineR
Calcul dans RStudio (je n'arrive pas à le faire dans TXM ou dans le R de TXM, cf messages dans les mails) :
> db <- available.packages() > tools::package_dependencies(db = db, recursive = TRUE)$FactoMineR [1] "car" "cluster" "DT" "ellipse" "emmeans" "flashClust" "graphics" "grDevices" [9] "lattice" "leaps" "MASS" "multcompView" "scatterplot3d" "stats" "utils" "ggplot2" [17] "ggrepel" "carData" "abind" "mgcv" "nnet" "pbkrtest" "quantreg" "lme4" [25] "nlme" "scales" "htmltools" "htmlwidgets" "jsonlite" "magrittr" "crosstalk" "jquerylib" [33] "promises" "estimability" "methods" "numDeriv" "mvtnorm" "cli" "glue" "grid" [41] "gtable" "isoband" "lifecycle" "rlang" "tibble" "vctrs" "withr" "Rcpp" [49] "lazyeval" "R6" "digest" "base64enc" "fastmap" "ellipsis" "yaml" "knitr" [57] "rmarkdown" "Matrix" "splines" "parallel" "boot" "minqa" "nloptr" "RcppEigen" [65] "broom" "dplyr" "later" "SparseM" "MatrixModels" "survival" "farver" "labeling" [73] "munsell" "RColorBrewer" "viridisLite" "fansi" "pillar" "pkgconfig" "backports" "generics" [81] "purrr" "stringr" "tidyr" "tidyselect" "evaluate" "highr" "xfun" "tools" [89] "colorspace" "testthat" "utf8" "bslib" "fontawesome" "tinytex" "sass" "cachem" [97] "memoise" "mime" "stringi" "brio" "callr" "desc" "pkgload" "praise" [105] "processx" "ps" "waldo" "cpp11" "rprojroot" "crayon" "fs" "rappdirs" [113] "diffobj" "rematch2"
Soit la liste : car, cluster, DT, ellipse, emmeans, flashClust, graphics, grDevices, lattice, leaps, MASS, multcompView, scatterplot3d, stats, utils, ggplot2, ggrepel, carData, abind, mgcv, nnet, pbkrtest, quantreg, lme4, nlme, scales, htmltools, htmlwidgets, jsonlite, magrittr, crosstalk, jquerylib, promises, estimability, methods, numDeriv, mvtnorm, cli, glue, grid, gtable, isoband, lifecycle, rlang, tibble, vctrs, withr, Rcpp, lazyeval, R6, digest, base64enc, fastmap, ellipsis, yaml, knitr, rmarkdown, Matrix, splines, parallel, boot, minqa, nloptr, RcppEigen, broom, dplyr, later, SparseM, MatrixModels, survival, farver, labeling, munsell, RColorBrewer, viridisLite, fansi, pillar, pkgconfig, backports, generics, purrr, stringr, tidyr, tidyselect, evaluate, highr, xfun, tools, colorspace, testthat, utf8, bslib, fontawesome, tinytex, sass, cachem, memoise, mime, stringi, brio, callr, desc, pkgload, praise, processx, ps, waldo, cpp11, rprojroot, crayon, fs, rappdirs, diffobj, rematch2.
Calcul du volume total de tous ces répertoires
R-4.2.2-builded/R-4.2.2/library/* :
On copie la liste brute Rstudio dans FactoMineR-dep.txt
On produit la liste des packages dans FactoMineR-dep-list.txt :
cat FactoMineR-dep.txt | sed -e 's/^\[[^ ]* "//g' -e 's/"[^"]*"/\n/g' -e 's/"$//' >FactoMineR-dep-list.txt
On itère pour chaque package pour le calcul du volume :
(for p in `cat FactoMineR-dep-list.txt`; do du -sb R-4.2.2-builded/R-4.2.2/library/$p; done) | cut -f1 | paste -sd+ | bc 308512680
Soit 308 Mo en tout.
Calcul du volume par répertoire
(trié par volume décroissant, en Ko)
42388 RcppEigen 32588 lme4 19376 Rcpp 12556 nloptr 10800 testthat 10568 Matrix 10464 bslib 8236 survival 8036 stringi 7504 farver 7256 rmarkdown 7008 stats 6288 DT 5676 sass 5432 vctrs 5324 ggplot2 5108 mgcv 4608 colorspace 3724 later 3572 promises 3396 rlang 3212 grDevices 3212 emmeans 3032 nlme 3000 knitr 2976 isoband 2876 tidyr 2808 grid 2804 tools 2776 graphics 2736 jsonlite 2732 dplyr 2700 ggrepel 2452 utils 2380 cli 2280 quantreg 2232 broom 2220 carData 2176 methods 2172 htmlwidgets 2168 SparseM 2152 fontawesome 1972 fs 1880 car 1824 tibble 1716 minqa 1640 jquerylib 1556 MASS 1484 pillar 1484 lattice 1428 diffobj 1420 viridisLite 1252 cpp11 1220 crosstalk 1136 digest 1124 cluster 1016 fastmap 904 yaml 888 processx 848 boot 844 purrr 840 fansi 816 utf8 756 scales 716 ps 696 stringr 628 xfun 616 callr 600 parallel 556 MatrixModels 548 mvtnorm 532 magrittr 500 htmltools 488 scatterplot3d 448 lazyeval 444 tidyselect 436 munsell 424 desc 400 lifecycle 396 withr 392 glue 388 gtable 368 pbkrtest 328 nnet 312 ellipse 304 rprojroot 268 pkgload 252 leaps 248 crayon 228 tinytex 224 splines 220 numDeriv 216 backports 200 waldo 196 multcompView 196 brio 192 R6 188 cachem 172 highr 172 generics 172 evaluate 168 base64enc 160 rappdirs 156 ellipsis 152 mime 148 labeling 144 RColorBrewer 144 abind 140 memoise 136 rematch2 136 flashClust 128 estimability 120 pkgconfig 116 praise
wget https://cran.r-project.org/src/base/R-4/R-4.2.2.tar.gz tar -xf R-4.2.2.tar.gz cd R-4.2.2 ./configure --enable-R-shlib --enable-java # will also build libR.so make # très long make clean # remove .o etc files ./bin/R
Installer les packages R pour TXM:
install.library("Rserve", repos="https://cran.rstudio.com"); install.library("textometry", repos="https://cran.rstudio.com"); install.library("FactoMineR", repos="https://cran.rstudio.com"); # très long
Rendre standalone R pour linux et Mac OS X: Remplacer le début du script “R_HOME_DIR=…” dans bin/R par
MY_PATH="`dirname \"$0\"`" MY_PATH="`( cd \"$MY_PATH\" && pwd )`" R_HOME_DIR="`readlink -f \"$MY_PATH/..\"`"
Ajouter dans le répertoire “lib” les fichier .so dont libR.so dépend.
Pistes :
Télécharger et installer R pour Windows https://cran.r-project.org/bin/windows/base/R-4.2.3-win.exe
Lancer bin/R.exe et installer les packages R de TXM :
install.library("Rserve", repos="https://cran.rstudio.com"); install.library("textometry", repos="https://cran.rstudio.com"); install.library("FactoMineR", repos="https://cran.rstudio.com");
Embèder R dans tous les setups de TXM pour s'assurer de :