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 :

Renvoyer nom ligne/colonne suivant valeurs matrice


Sujet :

R

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut Renvoyer nom ligne/colonne suivant valeurs matrice
    Bonjour à tous,

    J'analyse une matrice de corrélation et je cherche à obtenir suivant la valeur d'un élément d'une matrice le nom de la ligne et de la colonne à laquelle elle correspond.

    Par exemple :
    (voir PJ)

    obtenir pour le critère M(i,j)>0.7 les noms V1,V2 pour mon exemple.

    merci d'avance à ceux qui peuvent m'aider
    Images attachées Images attachées  

  2. #2
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    Bonjour,
    Essayes ce bout de code.
    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
    colonne <- colnames(M)
    ligne <- rownames(M)
    n <- dim(M)[1]
    res <- data.frame()
    for (i in 1:n){
      for (j in 1:n){
        if (M[i,j] >0.7 & M[j,i] & M[i,j]!=1){
          res[i,1] <- ligne[i]
          res[i,2] <- colonne[j]
          }
      }
     
    }
    names(res) <- c("Var1", "Var2")
    res
    Il faudra ensuite supprimer les doublons.
    BC

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Ok super merci, je pensai que l'on pouvait s'en sortir sans boucle, avec un which par exemple.

    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
    colonne <- colnames(M)
    ligne <- rownames(M)
    n <- dim(M)[1]
    res <- data.frame()
    for (i in 1:n){
      for (j in 1:n){
        if (abs(M[i,j]) >0.4  & M[i,j]!=1){
          res[i,1] <- ligne[i]
          res[i,2] <- colonne[j]
          }
      }
     
    }
    names(res) <- c("Var1", "Var2")
    res
    Sauf mauvaise interprétation il y avait un critère en trop dans le if

  4. #4
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    Bonjour,
    En effet, j'ai mis un critère de plus dans le if: la partie M[i,j]!=1 car sans cette condition, tu auras par exemple V1 et V1, V2 et V2, ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (abs(M[i,j]) >0.4  & M[i,j]!=1)
    Sinon, il y a toujours d'autres façons de faire sans utiliser les boucles bien sûr sous R, mais je n'ai pas eu le temps d'y creuser un peu plus.

    BC

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Yes, merci dommage pour le which cela ne doit pas être sorcié pourtant.
    je vais gratter un peu plus

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    J'ai trouvé ça sur un autre post mais ça marche que partiellement
    http://www.developpez.net/forums/d11...nne-dataframe/

Discussions similaires

  1. [XL-2010] Suppression colonne suivant valeur cellule 1ère ligne (en-tête)
    Par 2lester dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/08/2017, 21h11
  2. [XL-2003] Insérer lignes en suivant valeur
    Par lafafmentvotre dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/10/2010, 20h01
  3. affichage ligne colonne sans valeur bo 6.5
    Par gwena2b dans le forum Débuter
    Réponses: 4
    Dernier message: 14/12/2009, 13h08
  4. Réponses: 7
    Dernier message: 23/11/2009, 15h59
  5. [CR9]Masquer des données (colonnes) suivant valeur champ
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 05/09/2005, 09h43

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