Re: Requêtes BDD

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

  • Next message: Luis.Tito-de-Morais@ird.sn: "Re: Requêtes BDD"

    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 : Mon Mar 18 2002 - 07:30:17 MET