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 :

Colonnes de tailles différentes dans un data.frame


Sujet :

R

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Colonnes de tailles différentes dans un data.frame
    Bonjour,

    Petit problème paraissant simple mais qui pose des soucis. Je souhaite calculer une moyenne glissante sur cette base de données.

    Nom : Sans titre.png
Affichages : 1646
Taille : 12,3 Ko

    Pas de soucis dans le calcul de la moyenne glissante mais par contre j'aimerai en fait faire une troisième colonne dans ce tableau de données avec les résultats de ma moyenne glissante. Le problème est que les tailles de mes vecteurs ne sont pas les mêmes car les deux premiers jours n'ont pas de moyenne glissante.

    J'utilise le code suivant pour calculer ma moyenne glissante :

    > roll_mean(dataset[,2], 3, weights = NULL, by = 1L, fill = numeric(0), partial = FALSE, align = c("center", "left", "right"), normalize = TRUE, na.rm = FALSE)

    J'obtiens mon vecteur :

    [1] 60.17209 60.19096 60.47054 60.41606 60.26796 60.05892 60.03073 60.01870 60.01562 60.23962
    [11] 60.22036 60.27191 60.21991 60.31625 60.18935

    Au final, j'essaie que mon tableau soit composée de deux NA pour les deux premières lignes de la moyenne glissante ou de créer un nouveau tableau avec la colonne "Date" sans les deux premières lignes et la deuxième colonne avec les valeurs de ma moyenne glissante.

    Merci d'avance pour votre aide car je rame un peu là dessus. :/

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Colonnes de tailles différentes dans un data.frame
    Bonjour,

    Voici une proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > df <- data.frame(V1=c(1,1,1,1,1))
    > V2 <- c(2,2,2)
    > df$V2 <- c(NA,NA,V2)
    > df
      V1 V2
    1  1 NA
    2  1 NA
    3  1  2
    4  1  2
    5  1  2
    Cordialement,

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Bonjour mgdondon,

    Merci pour votre réponse. Une question supplémentaire pour savoir s'il est possible de généraliser le code, il m'arrive de calculer ma moyenne glissante sur 3 semaines, 4 semaines, 5 semaines etc.. Pour éviter d'avoir à modifier à chaque fois le nombre de NA dans la variable V2, savez vous s'il est possible de généraliser le code ?

    J'entends par là que lorsque je calcule une moyenne sur une période de X temps, je dois créer un vecteur V2 avec (X-1) NA. Par exemple, pour une période de 3 semaines, il faut un vecteur V2 avec deux NA au début. Pour une période de 5 semaines, il faut un vecteur V2 avec 4 NA au début etc...

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Colonnes de tailles différentes dans un data.frame
    Bonjour Jonathan,

    Vous pouvez utiliser la fonction rep() pour générer les données manquantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > df <- data.frame(V1=c(1,1,1,1,1))
    > V2 <- c(2,2,2)
    > decal <- 2
    > df$V2 <- c(rep(NA,decal),V2)
    > df
      V1 V2
    1  1 NA
    2  1 NA
    3  1  2
    4  1  2
    5  1  2
    Cordialement,

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Merci de votre réponse, le code fonctionne parfaitement.

    Cordialement,

    Jonathan

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

Discussions similaires

  1. Match 'date&temps' dans 2 data.frames différents
    Par arnaud.lucas dans le forum R
    Réponses: 0
    Dernier message: 24/10/2011, 15h04
  2. Rajout d'une colonne dans une data frame
    Par kalapiso dans le forum R
    Réponses: 2
    Dernier message: 23/10/2011, 14h43
  3. Suppression de colonnes dans un data.frame
    Par ricoben dans le forum R
    Réponses: 1
    Dernier message: 13/04/2010, 17h13
  4. Mean par colonne dans une data frame
    Par manoir dans le forum R
    Réponses: 3
    Dernier message: 19/06/2009, 11h06
  5. Réponses: 2
    Dernier message: 14/11/2008, 14h53

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