V7R40
Langage R
- R est un langage de programmation et un logiciel libre destiné aux statistiques et à la science des données soutenu par la R Foundation for Statistical Computing.
(voir wikipedia)
Sur IBM i, le produit est installé par YUM depuis ACS
>


le plus simple est, ensuite, de lancer Putty (il existe aussi un studio pour PC)

Initiation à la console
- toute saisie est évaluée sur le mode REPL
- Read
- Execute
- Print
- Loop

- .Last.value
- affiche la dernière valeur
- quit() pour sortir

Si vous sauvegardez , vous retrouverez votre environnement

vous pouvez aussi saisir des scripts et les lancer par Rscript

(petite) Initiation au langage (voir aussi https://cran.r-project.org/doc/contrib/Paradis-rdebuts_fr.pdf )
- affectation
- a=10
ou bien
- a <- 10
ou bien
- 10 -> a
- print() (action par défaut) : affichage
- class() : affiche la classe (le type)

- liste des constantes nommées

- c() : création d'un vecteur
- length : nb d'éléments d'un vecteur

- data frame (tableau à 2 dimensions pour stocker de la donnée )
- data permet de charger un jeu de données pré-packagé ("iris" est systématiquement fourni en exemple)
- data.frame : création d'un data frame
- str() : visualisation de la structure interne d'un dataframe
- head() : visualisation des 6 premières lignes
- tail() : visualisation des 6 dernières lignes
- attributes() : affichage des attributs
- dim() : dimensions (lignes X colonnes)
- nrow() : nombre de lignes uniquement
- ncol() : nombre de colonnes uniquement

- read.table() : charge un dataframe depuis un fichier texte
- read.csv() : charge un dataframe depuis un fichier CSV
- read.xlxs() : charge un dataframe depuis un fichier execel (package xlxs)
- remove() : destruction d'une variable (simple, vecteur ou frame)
- if..else
if (5>2) { print("tout est normal") }
|
- for
for (i in 1:20) { print(i) }
|
- while
while (i < 7) { print(i)
i = i + 7 }
|
pour ces deux boucles, on peut :
- sortir de manière anticipée par break
- sauter un tour de boucle par next
- repeat
- boucle infinie, il faut sortir par break
- Gestion de packages
- install.packages() : pour installer un package
- intalled.packages() : pour lister les packages installé
- library() : charge un package
- require() : charge un package et return FALSE qi celui-ci est manquant
- on peut aussi "qualifer" sans charger le package par : package::fonction
Accès à la base de données
nous avons utilisé le package RODBC , mais celui-ci semble avoir un prb avec le driver pour DB2
Puis nous avons utilisé odbc, qui foncitionne mieux
dans tous les cas
- il faut le télécharger depuis un site mirroir
- il sera compilé par GCC
Pour odbc il faut R, R-devel, libintl-devel (à installer par yum)
puis fixer la variable d'environnement "set OBJECT_MODE=64" |
le module ODBC est fourni, lui aussi en mode open source

Puis, le driver d'IBMi Access lui même :
Télécharez le sur https://www-01.ibm.com/support/docview.wss?uid=isg3T1026805
Dézippez puis transférez le fichier dans un répertoire sur l'IBM i
Installez le par :
yum install ibm-iaccess-1.1.0.11-0.ibmi7.2.ppc64.rpm
une connexion est déjà définie dans odbc.ini, nommée *LOCAL

D'ailleur nous pouvons tester par isql


pour se connecter avec RODBC
mais ce dernier gère mal SQLRowCount à -1
avec odbc
result est un dataframe ->
pour voir les données : print(result)
nous pouvons même interroger les propriétés et les datasources du Driver
Voir la documentation du package : https://cran.r-project.org/web/packages/odbc/odbc.pdf
©AF400