IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Réorganiser matrice selon 1 colonne


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Par défaut Réorganiser matrice selon 1 colonne
    Bonjour,
    J'ai une matrice lon/lat en fonction du temps
    Ligne 1 = Longitude
    Ligne 2 = Latitude
    Colonne 1 = Temps AAAAMMJJ
    Le reste de ma matrice c'est des valeurs

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0               61               61               62                62
    0               12               13               12                13
    20010101         2                5                4                 3
    20010102         3                4                0                 8
    20010103         1                9                1                 0
    ...
    20020101         3                6                5                 4
    20020102         4                5                1                 9
    20020103         2                9                2                 1
    J'aimerai réorganiser ma matrice en fonction de la 1ère colonne c'est à dire du temps. Mais j'aimerai écrire sous la forme MMJJAAAA et non pas AAAAMMJJ comme dans la matrice initiale. Pour ensuite la réorganiser dans l'ordre croissant
    Cela donnerai la matrice suivante (la matrice que j'aimerai obtenir)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0               61               61               62                62
    0               12               13               12                13
    01012001         2                5                4                 3
    01012002         3                6                5                 4
    01022001         3                4                0                 8
    01022002         4                5                1                 9
    01032001         1                9                1                 0
    01032002         2                9                2                 1
    ...
    Merciiii

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Réorganiser matrice selon 1 colonne
    Bonjour,

    Voici une proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    > mat <- matrix(c(c(0,        61, 61, 62,  62),
    +                 c(0,        12, 13, 12,  13),
    +                 c(20010101,  2,  5,  4,   3),
    +                 c(20010102,  3,  4,  0,   8),
    +                 c(20010103,  1,  9,  1,   0),
    +                 c(20010112,  1,  9,  1,   0),
    +                 c(20020101,  3,  6,  5,   4),
    +                 c(20020102,  4,  5,  1,   9),
    +                 c(20020103,  2,  9,  2,   1),
    +                 c(20020112,  1,  9,  1,   0)),
    +               nrow=10, ncol=5, byrow=T)
    > mat
              [,1] [,2] [,3] [,4] [,5]
     [1,]        0   61   61   62   62
     [2,]        0   12   13   12   13
     [3,] 20010101    2    5    4    3
     [4,] 20010102    3    4    0    8
     [5,] 20010103    1    9    1    0
     [6,] 20010112    1    9    1    0
     [7,] 20020101    3    6    5    4
     [8,] 20020102    4    5    1    9
     [9,] 20020103    2    9    2    1
    [10,] 20020112    1    9    1    0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > annee <- floor(mat[,1]/10000)
    > annee
     [1]    0    0 2001 2001 2001 2001 2002 2002 2002 2002
    > mois  <- mat[,1]%%100
    > mois
     [1]  0  0  1  2  3 12  1  2  3 12
    > jour  <- 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > mat[,1] <- ifelse(mat[,1] != 0, mois*1000000 + jour*10000 + annee, 0)
    > mat
              [,1] [,2] [,3] [,4] [,5]
     [1,]        0   61   61   62   62
     [2,]        0   12   13   12   13
     [3,]  1012001    2    5    4    3
     [4,]  2012001    3    4    0    8
     [5,]  3012001    1    9    1    0
     [6,] 12012001    1    9    1    0
     [7,]  1012002    3    6    5    4
     [8,]  2012002    4    5    1    9
     [9,]  3012002    2    9    2    1
    [10,] 12012002    1    9    1    0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > mat <- mat[order(mat[,1]),]
    > mat
              [,1] [,2] [,3] [,4] [,5]
     [1,]        0   61   61   62   62
     [2,]        0   12   13   12   13
     [3,]  1012001    2    5    4    3
     [4,]  1012002    3    6    5    4
     [5,]  2012001    3    4    0    8
     [6,]  2012002    4    5    1    9
     [7,]  3012001    1    9    1    0
     [8,]  3012002    2    9    2    1
     [9,] 12012001    1    9    1    0
    [10,] 12012002    1    9    1    0
    Cordialement,

  3. #3
    Membre confirmé
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Par défaut
    Dans votre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    > mois  <- mat[,1]%%100
    correspond à mes jours et non à mes mois car à la base c'est sous la forme AAAAMMJJ

    dans votre matrice finale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    > mat
              [,1] [,2] [,3] [,4] [,5]
     [1,]        0   61   61   62   62
     [2,]        0   12   13   12   13
     [3,]  1012001    2    5    4    3
     [4,]  1012002    3    6    5    4
     [5,]  2012001    3    4    0    8
     [6,]  2012002    4    5    1    9
     [7,]  3012001    1    9    1    0
     [8,]  3012002    2    9    2    1
     [9,] 12012001    1    9    1    0
    [10,] 12012002    1    9    1    0
    la 5ème ligne devrai être : 1022001 pour faire MMJJAAAA et non JJMMAAAA

    Je suis moins familière à l'environnement R

    Merci,

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Réorganiser matrice selon 1 colonne
    Ah oui, j'ai mal lu votre message initial mais le principe est le même. Le jeu est de trouver une opération qui permette de récupérer les mois, ce que vous pouvez faire avec les fonctions arithmétiques de base et la fonction floor(). Ensuite il faut reconstituer la date à partir des variables jour, mois et annee.

    Cordialement,

  5. #5
    Membre confirmé
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Par défaut
    merci,
    je vais essayer de réorganiser mon code !

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/10/2016, 04h20
  2. Réponses: 10
    Dernier message: 25/07/2012, 11h46
  3. Réponses: 1
    Dernier message: 09/06/2011, 22h29
  4. plusieurs selections selon sur colonne different critere
    Par richton95 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/01/2006, 17h25
  5. [debutant][JTable] Trier selon une colonne
    Par yupa dans le forum Composants
    Réponses: 3
    Dernier message: 08/08/2005, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo