+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2012
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 65
    Points : 10
    Points
    10

    Par défaut Identification des lignes manquantes dans jeu de données

    Bonjour,

    Je dispose d'un jeu de données (voir en pièce jointe) avec une valeur de température toutes les heures. Cependant, ces données comportent des "trous". C'est-à-dire qu'il arrive que l'on passe directement de 17h a 19h, la données de température qui devrait figurer à 18h étant manquante.

    Je souhaiterais donc pouvoir repérer ces lignes manquantes sur la base d'un test du type :
    Si l'heure à l'instant t n'est pas égale à l'heure à l'instant (t-1) + 100 (l'heure est en effet exprimée de la manière suivante 1700, 1800, 1900, etc.. pour 17h, 18h, 19h), alors il manque une ligne de données.
    A ce moment là, je souhaiterais créer une colonne supplémentaire dans mes données à remplir avec des TRUE/FALSE selon le résultat du test.
    J'envisageais d'utiliser ce type de formule (avec "a" mon jeu de données et a$HrMn la colonne comportant l'heure à laquelle chaque donnée a été capturée:
    Code :
    a$MISS=ifelse(a$HrMn[i]=a$HrMn[i-1]+100, FALSE, TRUE)
    ça ne marche pas...
    J'ai également essayé cela:
    Code :
    1
    2
    a$y[a$HrMn[i]==a$HrMn[i-1]+100]=TRUE
    a$y[a$HrMn[i]!=a$HrMn[i-1]+100]=FALSE
    Dans ce cas, je n'obtiens que des TRUE...

    Cependant, un problème se pose. Toutes les 24 lignes, la valeur de la colonne HrMn (autrement dit, l'heure) retombe à 0 (une nouvelle journée commence).
    Auriez-vous une idée concernant ce problème et la manière de formuler la ligne de script ci-dessus, cela ne marche pas pour l'instant.

    Merci!
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    MD, PhD, post-doc
    Inscrit en
    juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : MD, PhD, post-doc
    Secteur : Santé

    Informations forums :
    Inscription : juillet 2010
    Messages : 185
    Points : 564
    Points
    564

    Par défaut

    Bonjour,

    Code :
    1
    2
    3
    4
    5
    reperage <- read.table("ReperageLignesManquantes.txt", header=TRUE, sep="\t", stringsAsFactors=FALSE)
    temp <- expand.grid(unique(reperage$Date), seq(0, 2300, 100))
    names(temp) <- c("Date", "HrMn")
    resultat <-merge(temp, reperage, all.x=TRUE)
    resultat[which(is.na(resultat$Temp)), ]
    HTH

    Vincent

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •