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 :

Somme sur une colonne d'une table de données avec des conditions


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 48
    Par défaut Somme sur une colonne d'une table de données avec des conditions
    Bonjour à tous,

    Etant confronté à un soucis sur R je sollicite votre aide. Merci d'avance pour le temps que vous me consacré.

    Voici mes données:
    contrat date Mois Montant
    1 01/05/2017 5 300
    2 09/04/2016 4 500
    2 15/05/2016 5 150
    2 19/12/2017 12 30
    5 30/02/2005 2 100
    5 30/01/2005 1 100
    10 23/07/2007 7 10
    10 23/08/2007 8 50
    2 23/12/2007 12 200

    J'aimerais obtenir le tableau suivant avec ces conditions:
    IF Mois <= 3 THEN Q1 = sum(Montant); ELSE Q1 = 0
    IF Mois > 3 and Mois <=6 THEN Q2 = sum(Montant) ; ELSE Q2 = 0
    IF Mois > 6 and Mois <=9 THEN Q3 = sum(Montant); ELSE Q3 = 0
    IF Mois > 9 THEN Q4 = sum(Montant); ELSE Q4 = 0
    contrat Q1 Q2 Q3 Q4
    1 0 300 0 0
    2 0 650 0 0
    2 0 0 0 230
    5 200 0 0 0
    10 0 0 60 0

    Encore une fois merci pour votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Somme sur une colonne d'une table de données avec des conditions
    Bonjour,

    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
    16
    > df <- read.table("test.txt",header=TRUE)
    > df$Q1 <- ifelse(df$Mois <= 3, df$Montant, 0)
    > df$Q2 <- ifelse(df$Mois > 3 & df$Mois <= 6, df$Montant, 0)
    > df$Q3 <- ifelse(df$Mois > 6 & df$Mois <= 9, df$Montant, 0)
    > df$Q4 <- ifelse(df$Mois > 9, df$Montant, 0)
    > df
      contrat       date Mois Montant  Q1  Q2 Q3  Q4
    1       1 01/05/2017    5     300   0 300  0   0
    2       2 09/04/2016    4     500   0 500  0   0
    3       2 15/05/2016    5     150   0 150  0   0
    4       2 19/12/2017   12      30   0   0  0  30
    5       5 30/02/2005    2     100 100   0  0   0
    6       5 30/01/2005    1     100 100   0  0   0
    7      10 23/07/2007    7      10   0   0 10   0
    8      10 23/08/2007    8      50   0   0 50   0
    9       2 23/12/2007   12     200   0   0  0 200
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > df <- aggregate(df[,5:8],by=list(df$contrat),sum)
    > colnames(df)[colnames(df)=="Group.1"] <- "contrat"
    > df
      contrat  Q1  Q2 Q3  Q4
    1       1   0 300  0   0
    2       2   0 650  0 230
    3       5 200   0  0   0
    4      10   0   0 60   0
    Cordialement,

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 48
    Par défaut
    Merci pour votre prompte réponse. Je vais essayer ça et voir ce que ça donne.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 48
    Par défaut
    Merci beaucoup votre réponse. Le code marche à merveille.

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

Discussions similaires

  1. Réponses: 30
    Dernier message: 12/05/2016, 20h57
  2. Réponses: 3
    Dernier message: 28/02/2015, 15h44
  3. Réponses: 8
    Dernier message: 28/11/2011, 11h40
  4. [VBA] Somme de certaines valeurs d'une colonne dans une requete
    Par petitelalou dans le forum VBA Access
    Réponses: 7
    Dernier message: 01/08/2007, 00h18
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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