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 :

Selection d'individus sur une période


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut Selection d'individus sur une période
    Bonjour,

    J'ai une table qui enregistre pour chaque client les événements relatifs à son abonnement ( abonnement, suspension , réabonnement, livraison, désabonnement) avec une date liée à chaque éventement. Ma table se présente comme ca.

    ID_client Date_id Statut Rank
    _-9222834458192708960 09/01/2019 Abonnement 1
    _-9222834458192708960 07/02/2019 Liv1 2
    _-9222834458192708960 08/05/2019 Liv2 3
    _-9222834458192708960 11/06/2019 Liv3 4

    J'aimerais créer une fonction pour avoir la liste des abonnés et des désabonnés à partir de la table pour chaque date.

    Exemple :
    timeline client 1

    01/01/2019(abonnement) --------19/01/2019(liv1)--------20/02/2019(suspension) ---------03/03/2019(réabonnement)---------15/04/2019(liv2)--------------------.....

    timeline client 2

    01/01/2019(abonnement) --------20/01/2019(liv1)--------------------28/02/2019(désabonnement)


    J'aimerai pouvoir dire que le 15/01/2019 client 1 et client 2 étaient abonnés , le 20/01/2019 pareil ,
    le 28/02/2019 client1 abonné et client2 désabonné.

    Voilà un échantillon de mes données.

    data.xlsx

    Merci de 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 Transpositions
    Bonjour,

    En jouant avec les transpositions :

    • Une observation par client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    library("xlsx")
    df <- read.xlsx(file="d:/temp/data.xlsx", sheetIndex="Classeur1", header=TRUE, colClasses=NA)
    df <- df[order(df$ID_client),]
    df$RepNoID <- sequence(rle(as.vector(df$ID_client))$lengths)
    reshape(data=df[,-4],
                 idvar="ID_client",
                 v.names=c("Date_id","Statut"),
                 timevar="RepNoID",
                 direction="wide")
    • Une observation par date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    df <- read.xlsx(file="d:/temp/data.xlsx", sheetIndex="Classeur1", header=TRUE, colClasses=NA)
    df <- df[order(df$Date_id),]
    df$RepNoDate <- sequence(rle(as.vector(df$Date_id))$lengths)
    reshape(data=df[,-4],
                 idvar="Date_id",
                 v.names=c("ID_client","Statut"),
                 timevar="RepNoDate",
                 direction="wide")
    Cordialement,

  3. #3
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut
    Bonjour,

    Merci pour votre réponse. La fonction reshape marche très bien pour construire la timeline du client. Mais ce n'est pas la problématique.

    Enfaîte, ce que je cherche à déterminer. C'est en fixant une date par exemple le 01/01/2019 , extraire la liste des abonnés à cette date et la liste des désabonnés à même date.

    La liste des désabonnés d'une date c'est facile avec le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_desabo_01012019 <- unique( subset(df, df$Date_id== as.Date("2019-01-01") & df$Statut == "Désabonnement" )[,'ID_client'])
    Mais la liste des abonnés au 01/01/2019 je n'arrive pas à trouver la bonne requette.

    Merci de votre aide.

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Transpositions
    Désolée, je ne comprends pas ce que vous voulez faire. En quoi la deuxième transposition ne convient pas ?

    Cordialement,

  5. #5
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut
    Bonjour,

    Ce que je cherche à faire c'est pas une transposition des données. sur mes données j'ai déjà historique des clients trier par client; date et événement.

    Ce que je cherche à déterminer c'est de classer pour chaque date mes clients en ( client abonnée, client désabonné)

    par exemple:

    le 01/01/2019 :
    liste des abonnés : client1 , client2 , client3, client5 , client6
    liste des désabonnés : client7

    le 02/01/2019 :
    liste des abonnés : client1 , client2 , client3, client5 , client8
    liste des désabonnés : client6


    et ainsi de suite...

    J'espère que c'est assez clair pour vous.

    Merci de votre engagement.

  6. #6
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Transpositions
    Votre demande n'est pas très claire. Cela signifie-t-il qu'il faut créer les dates intermédiaires ou bien construire le résultat uniquement avec les dates présentes dans le fichier ?

    Il serait bien de donner un exemple qui corresponde à votre fichier test.

    Cordialement,

  7. #7
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut
    Bonjour,

    J'ai pu bidouiller avec la fonction reshape.

    Merci de votre aide.

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

Discussions similaires

  1. [BO 6.5][Webi]Dernière visite sur une période
    Par alextoucour dans le forum Webi
    Réponses: 1
    Dernier message: 18/08/2008, 11h58
  2. Appliquer le principe de day_of_week_in_month sur une période
    Par coquero dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 16/07/2008, 14h47
  3. select distinct, sauf sur une colonne
    Par Myfred dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/04/2008, 09h40
  4. Réponses: 0
    Dernier message: 05/02/2008, 10h09
  5. Réponses: 3
    Dernier message: 30/07/2007, 12h25

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