29/09/05 Interface C/R/Python 4
Chargement d'une librairie C dans R
Rien de tel qu'un exemple pour comprendre :
$> cat fic.c
#include <stdio.h>
void hello (){
printf("Test reussi\n");
}
$> gcc –c fic.c
$> gcc –shared fic.o –o libMBI.so
$> R
> dyn.load("libMBI.so")
> is.loaded("coucou")
[1] FALSE
> is.loaded("hello")
[2] TRUE
> .C("hello")
Test reussi
>
Attention aux subtilités :
• La fonction appelée par .C dans
R ne doit pas retourner de valeur
• Lorsque l'on fait appel à une
fonction par .C les objets
passés en argument sont
copiés !!!
• De même après l'appel, les
objets sont à nouveau copiés
pour être mis dans une liste