278
Le logiciel R - Maˆ ıtriser le langage
1 pmvtRCR <- function ( upper , corr , df ) {
2 res <- 0.0
3 Rpmvt <- function ( upper , corr , df ) {
4
d <- length ( upper )
5
pmvt ( lower = rep (- Inf ,d), upper = upper , delta = rep (0 , d),
6
corr = matrix ( corr , ncol =d), df = df )}
7 dyn . load ( paste (" pmvt " ,. Platform $ dynlib . ext , sep ="" ))
8 res <- . Call (" pmvtCR " ,as . double ( upper ), as . double ( corr ),
9
as . double ( df ), Rpmvt , new . env () , as . double ( res ))
10 dyn . unload ( paste (" pmvt " ,. Platform $ dynlib . ext , sep ="" ))
11 return ( res ) }
Puis tapez les instructions suivantes :
> require("mvtnorm")
> corr <- diag(3)
> set.seed(1)
> source("pmvt.R")
> pmvtRCR(c(2,3,2),corr,c(1,1,1))
[1] 0.706062
> set.seed(1)
> pmvt(lower=rep(-Inf,3),upper=c(2,3,2),corr=corr,df=c(1,1,1))[1]
[1] 0.706062
Astuce
Si un objet SEXP contient un vecteur (par exemple SEXP x) ou
une matrice (par exemple SEXP M), vous pouvez utiliser les instructions
R_len_t n = length(x) et R_len_t p = nrows(M) pour cr´ eer des entiers
contenant la longueur n du vecteur x ou le nombre de lignes p de la matrice M. Le fichier Rinternals.h contient la liste de tr` es nombreuses fonctions
utiles de ce genre.
6.5.5 Appel d’un code R depuis un programme Fortran
Nous vous conseillons d’utiliser le logiciel Open-Source RFortran disponible
` a l’adresse http://www.rfortran.org.
6.5.6 Quelques fonctions utiles
Nous pr´ esentons ci-dessous quelques fonctions qui pourraient vous ˆ etre utiles.
Les fonctions suivantes s’utilisent dans une fenˆ etre terminal MS-DOS (ou Cygwin,
voir la page 282) :
• nm : liste les symboles des fichiers objets (ex : nm random.dll) ;
Précédent

- 311/701

Suivant