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 de valeurs identiques


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur forestier
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur forestier

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Recherche de valeurs identiques
    Bonjour,

    Je souhaiterai réaliser un script me permettant d'une part de rechercher des valeurs identiques et d'autre part de me renvoyer une valeur associé à la recherche. Je m'explique : j'ai un jeu de données comme suit :

    FORET PARCELLE UE IDENTIFICATION ANNEE 0 1a 1b 2a 3
    DLON 185 1 DLON1851 2008 0 2.5 0 0 0
    DLON 185 1 DLON1851 2010 0 2.5 0 0 0
    DLON 185 1 DLON1851 2012 0 0 2.5 0 0
    DLON 185 1 DLON1851 2014 0 0 2.5 0 0
    DLON 185 1 DLON1851 2016 0 0 2.5 0 0
    DLON 185 1 DLON1851 2018 0 0 2.5 0 0
    DLON 185 1 DLON1851 2020 0 0 0 2.5 0

    Ici par exemple, je veux le temps de passage entre les classes : 1a → 1b : 2 ans au max ; 1b → 2 : 6 ans au max
    pour ensuite filtrer les temps de passage trop long (filter 1a→1b > 6 par exemple). Il me faudrait donc :

    FORET PARCELLE UE IDENTIFICATION ANNEE 0 1a 1b 2a 3 1a→1b 1b→2 2 →3
    DLON 185 1 DLON1851 2008 0 2.5 0 0 0 0
    DLON 185 1 DLON1851 2010 0 2.5 0 0 0 2
    DLON 185 1 DLON1851 2012 0 0 2.5 0 0 0
    DLON 185 1 DLON1851 2014 0 0 2.5 0 0 2
    DLON 185 1 DLON1851 2016 0 0 2.5 0 0 4
    DLON 185 1 DLON1851 2018 0 0 2.5 0 0 6
    DLON 185 1 DLON1851 2020 0 0 0 2.5 0 0


    Je commence donc par un group_by (IDENTIFICATION), mais je ne sais pas comment coder la suite. Si quelqu'un peu m'aider. Merci ^^

  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 first by group
    Bonjour,

    Une proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    test <- read.table(header = TRUE, text ="
    FORET PARCELLE 	UE 	IDENTIFICATION 	ANNEE 	V0 	V1a 	V1b 	V2a 	V3
    DLON 	185 	1 	DLON1851 	2008 	0 	2.5 	0 	0 	0
    DLON 	185 	1 	DLON1851 	2010 	0 	2.5 	0 	0 	0
    DLON 	185 	1 	DLON1851 	2012 	0 	0 	2.5 	0 	0
    DLON 	185 	1 	DLON1851 	2014 	0 	0 	2.5 	0 	0
    DLON 	185 	1 	DLON1851 	2016 	0 	0 	2.5 	0 	0
    DLON 	185 	1 	DLON1851 	2018 	0 	0 	2.5 	0 	0
    DLON 	185 	1 	DLON1851 	2020 	0 	0 	0 	2.5 	0
    ")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    test$CLASSE <- dplyr::case_when(
      test$V1a != 0 ~ "1a",
      test$V1b != 0 ~ "1b",
      test$V2a != 0 ~ "2a"
      )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    library(data.table)
    test <- setDT(test)
    test[ , duree := ANNEE - first(ANNEE), by = c("IDENTIFICATION","CLASSE")]
    setDF(test)
    Vous pouvez ainsi identifier les temps de passage trop longs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > test
      FORET PARCELLE UE IDENTIFICATION ANNEE V0 V1a V1b V2a V3 CLASSE duree
    1  DLON      185  1       DLON1851  2008  0 2.5 0.0 0.0  0     1a     0
    2  DLON      185  1       DLON1851  2010  0 2.5 0.0 0.0  0     1a     2
    3  DLON      185  1       DLON1851  2012  0 0.0 2.5 0.0  0     1b     0
    4  DLON      185  1       DLON1851  2014  0 0.0 2.5 0.0  0     1b     2
    5  DLON      185  1       DLON1851  2016  0 0.0 2.5 0.0  0     1b     4
    6  DLON      185  1       DLON1851  2018  0 0.0 2.5 0.0  0     1b     6
    7  DLON      185  1       DLON1851  2020  0 0.0 0.0 2.5  0     2a     0
    Si vous souhaitez générer les variables V1a_V1b, V1b_V2a, V2a_V3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test$V1a_V1b <- ifelse(test$CLASSE=="1a",test$duree,NA)
    test$V1b_V2a <- ifelse(test$CLASSE=="1b",test$duree,NA)
    test$V2a_V3  <- ifelse(test$CLASSE=="2a",test$duree,NA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > test
      FORET PARCELLE UE IDENTIFICATION ANNEE V0 V1a V1b V2a V3 CLASSE duree V1a_V1b V1b_V2a V2a_V3
    1  DLON      185  1       DLON1851  2008  0 2.5 0.0 0.0  0     1a     0       0      NA     NA
    2  DLON      185  1       DLON1851  2010  0 2.5 0.0 0.0  0     1a     2       2      NA     NA
    3  DLON      185  1       DLON1851  2012  0 0.0 2.5 0.0  0     1b     0      NA       0     NA
    4  DLON      185  1       DLON1851  2014  0 0.0 2.5 0.0  0     1b     2      NA       2     NA
    5  DLON      185  1       DLON1851  2016  0 0.0 2.5 0.0  0     1b     4      NA       4     NA
    6  DLON      185  1       DLON1851  2018  0 0.0 2.5 0.0  0     1b     6      NA       6     NA
    7  DLON      185  1       DLON1851  2020  0 0.0 0.0 2.5  0     2a     0      NA      NA      0
    Cordialement,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur forestier
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur forestier

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    C'est parfait, merci

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

Discussions similaires

  1. [XL-2013] Recherche de valeurs identiques dans un tableau
    Par Lefanatique dans le forum Excel
    Réponses: 4
    Dernier message: 09/11/2016, 12h22
  2. [XL-2013] Recherche valeurs identiques sur 2 lignes
    Par Tivert15 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/12/2015, 01h52
  3. [XL-2007] Recherche de valeur identique dans un tableau
    Par Fred4345 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/10/2011, 22h35
  4. [XL-2000] Rechercher une valeur pas totalement identique
    Par bacuri dans le forum Excel
    Réponses: 2
    Dernier message: 17/04/2009, 12h40
  5. recherche de valeur identique dans un tableau
    Par jean tof dans le forum Langage
    Réponses: 9
    Dernier message: 20/06/2006, 14h33

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