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 :

Recherche multicritère de data.table


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Août 2011
    Messages : 11
    Par défaut Recherche multicritère de data.table
    Bonsoir,

    Pourriez-vous me suggérer une solution pour la recherche multicritères suivante svp.

    Je souhaite chercher la valeur de la colonne "basis" qui satisfait les deux critères (regime, insured). Le debug me renvoie toujours 0 comme valeur.

    J'ai essayé également avec which() mais ça ne marche pas.

    Merci de bien vouloir me donner un coup de main.

    Paul

    --------- C'est un exemple -----

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     output$d_uiHealthRequired <- renderUI({
        ## read data table
           myfileScal <- "www/healthScal.csv"
            mydata_Scal=read.csv(myfileScal, sep=";", header=TRUE)
        ## get value  
            basisEmployesValue <- mydata_Scal[mydata_Scal$regime == "general", mydata_Scal$insured == "employes","basis",]
            basisChildValue <- mydata_Scal[mydata_Scal$regime == "general", mydata_Scal$insured == "child","basis",]
            basisThirdChildsValue <- mydata_Scal[mydata_Scal$regime == "general", mydata_Scal$insured == "thirdChilds","basis",]
    })
    -- le fichier healthScal.csv ----

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    regime;insured;basis;economic;confort;premium
    general;employes;31.7;12;22;50
    general;child;20;6;11;25
    general;thirdChilds;0;0;0;0
    alsaceMoselle;employes;18;12;22;50
    alsaceMoselle;child;11;6;11;25
    alsaceMoselle;thirdChilds;0;0;0;0

  2. #2
    Membre expérimenté Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Par défaut
    Bonjour,

    il existe en effet de multiples façons de faire, en voici une avec which

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydata_Scal[which((mydata_Scal$regime == "general") & (mydata_Scal$insured == "employes")) , "basis"]
    Le critère est sur la colonne regime & insured ==> le which... permet de sélectionner la ligne correspondante et le , "basis" renvoie uniquement la valeur pour la colonne basis

    Je ne sais pas si la réponse est utile comme le message est identifié en résolu.
    Bonne journée,

  3. #3
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Août 2011
    Messages : 11
    Par défaut
    Bonjour Alpacky,
    Merci pour ton aide mais entre temps j'ai trouvé pourquoi
    L'erreur vient de mon fichier csv, j'ai sauvegardé par mégarde avec l'option CSV UTF8 avec séparateur ","
    Tous mes autres fichiers csv sont sauvegardé avec l'option CSC séparateur ";"
    Une fois corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydata_Scal[which((mydata_Scal$regime == "general") & (mydata_Scal$insured == "employes")) , "basis"]
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydata_Scal[mydata_Scal$regime == "general" & mydata_Scal$insured == "employes" , "basis"]
    fait l'affaire.
    Merci Alpacky

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Recherche multicritères sur plusieurs tables
    Par bili31 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 07/03/2012, 20h17
  2. [MySQL] recherche multicritères sur plusieurs table
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/11/2007, 17h42
  3. recherche multicritères sur deux tables
    Par amélie22 dans le forum Access
    Réponses: 1
    Dernier message: 16/06/2006, 11h59
  4. recherche multicritères sur plusieurs tables
    Par amélie22 dans le forum Access
    Réponses: 1
    Dernier message: 16/06/2006, 09h48
  5. Recherche multicritère sur plusieurs tables
    Par Nabouille dans le forum Access
    Réponses: 3
    Dernier message: 12/04/2006, 18h39

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