Re: Requêtes BDD

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Mon Mar 18 2002 - 07:26:26 MET


On peut faire ce que veut Guillaume OLLIVIER dans R :
http://www.r-project.org/
avec une toute petite fonction :

fp_function(X) {
         fun_function(x) {
                 x_unlist(x)
                 x1_which(x==max(x))[1]
                 x[x1]_-999
                 x2_which(x==max(x))[1]
                 x[x2]_-999
                 x3_which(x==max(x))[1]
                 return(names(X)[c(x1,x2,x3)])
         }
         z_t(apply(X,1,fun))
         z_data.frame(z)
         names(z)_c("Esp1","Esp2","Esp3")
         return(z)
}

Un tableau de données :
> X
      Eda Bsp Brh Bni Bpu Cen Ecd Rhi Hla Hab Par Cae Eig
sp_1 4 7 10 9 0 0 0 5 9 0 4 0 0
sp_2 0 0 8 0 0 0 0 0 4 0 0 0 0
sp_3 0 5 5 0 0 0 0 2 5 0 0 0 0
sp_4 0 3 6 0 0 0 0 3 6 0 0 0 0
sp_5 0 5 6 0 0 0 5 0 4 0 0 0 4
su_1 6 7 10 0 10 0 0 2 7 0 0 0 2
su_2 0 0 9 0 0 0 0 0 0 0 0 0 0
su_3 0 6 8 0 0 2 0 0 0 0 0 0 0
su_4 0 7 11 0 0 2 0 0 2 0 0 5 5
su_5 0 6 9 2 3 0 4 0 0 0 0 2 7
au_1 4 5 8 0 9 6 0 5 9 0 7 0 0
au_2 0 0 1 0 0 0 0 0 0 0 0 0 0
au_3 0 9 10 0 0 0 0 0 4 0 3 0 0
au_4 0 10 13 0 0 3 0 5 5 1 4 2 4
au_5 2 10 12 0 4 0 8 4 4 2 5 1 6
wi_1 3 6 7 0 6 7 0 4 8 0 4 0 0
wi_2 0 3 6 0 0 5 0 4 3 0 1 0 0
wi_3 0 0 3 0 0 1 0 1 0 0 0 0 0
wi_4 0 6 10 0 0 5 1 3 5 0 2 0 0
wi_5 1 9 11 0 3 6 8 3 5 2 5 0 0

Le résultat :

> fp(X)
      Esp1 Esp2 Esp3
sp_1 Brh Bni Hla
sp_2 Brh Hla Eda
sp_3 Bsp Brh Hla
sp_4 Brh Hla Bsp
sp_5 Brh Bsp Ecd
su_1 Brh Bpu Bsp
su_2 Brh Eda Bsp
su_3 Brh Bsp Cen
su_4 Brh Bsp Cae
su_5 Brh Eig Bsp
au_1 Bpu Hla Brh
au_2 Brh Eda Bsp
au_3 Brh Bsp Hla
au_4 Brh Bsp Rhi
au_5 Brh Bsp Ecd
wi_1 Hla Brh Cen
wi_2 Brh Cen Rhi
wi_3 Brh Cen Rhi
wi_4 Brh Bsp Cen
wi_5 Brh Bsp Ecd

Juste pour dire que la version d'ADE-4 dans R, c'est pour presque bientôt !
Cordialement

At 16:14 18/03/2002 +1100, Guillaume OLLIVIER wrote:
>Bonjour à tous,
>une petite question énervante sur les requêtes de base de donnée, pas
>forcément géographique d'ailleurs :
>Je travaille sur un tableau de données de recouvrement avec les sp en
>colonne et les relevés (faciès de végétation) en ligne, soit
>
> spA | SpB| ...|Spn
>FaciesA 0.01 | 0 | ...| 0.2
>FaciesB 0 | 0.5 | ... | 0
>.... ... | ... | ... | ...
>FaciesN 0.5 | 0.01|...| 0
>
>J'aimerai pouvoir connaitre pour chaque faciès l'espèce la plus
>abondante (voire les 3 premières) de manière automatique et que le code de
>cette ou ces espèces apparaissent dans la ligne
>correspondant au faciès, soit :
>
> Sp la plus abondante
>FaciesA Spn
>FaciesB SpB
>...
>FaciesN SpA
>
>Une telle requête est elle possible sous Access et avec quelle démarche ? Et
>avec Excell ?? d'autres outils ???
>Faut il passer par du VB ...?
>
>
>Cordialement
>
>
>Guillaume OLLIVIER
>IAC/CIRAD Nouvelle Calédonie

Daniel Chessel
Universite Lyon 1 - Biométrie et Biologie Evolutive - Bât 741
69622 Villeurbanne CEDEX
Tel : 04 72 44 82 77 - (33) 4 72 44 82 77



This archive was generated by hypermail 2b30 : Fri Feb 14 2003 - 14:36:09 MET