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 :

convertir jour de l'année en année mois jour dans R


Sujet :

R

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut convertir jour de l'année en année mois jour dans R
    Bonjour,

    je travaille sur des données MODIS EVI et je cherche a convertir la date de jour de l'année a yyyy-mm-dd

    voila : MOD13Q1.006__250m_16_days_EVI_doy2000209_aid0001 le jour de l'année doy2000209

    je sais pas comment le faire sur R

    merci d'avance

  2. #2
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Par contre il faut nous dire exactement ce que représente doy2000209 :

    20 septembre 2000 ?
    2 septembre 2000 ?
    9 février 2000 ?
    27 juillet 2000 ?
    24 janvier 1970 ?

    En 10 secondes, j'ai déjà 5 dates possibles.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    2000209 c'est le jour de l'année le jour 209 de l'année 2000 du coups les données sont presenté par cette dates et j'aimerai les convertir en date yyyy_mm_jj

    merci

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    c'est le 27 juillet 2000

  5. #5
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    La réponse magique de Google avec "R convert day of year to date" : https://stackoverflow.com/questions/...f-year-to-date
    Une extraction de chaine pour ne garder que les trois derniers caractères ou les sept derniers pour avoir une fonction plus générique et tu as tout ce qui faut.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    apres pour 6 raster je mets seulement : as.Date(104, format = "%j", origin = "dd.mm.yyyy") , cela suffit ?

    merci

  7. #7
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Il faut essayer de comprendre un peu tout de même.
    La programmation, ce n'est pas je trouve sur internet un bout de code, je le copie-colle et espérant que ça marche pour moi
    Il faut comprendre ce que fait une fonction, cherche la documentation correspondante, ...

    Je vais être gentil et fournir une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    library("stringr")
     
    texte0 <-"MOD13Q1.006__250m_16_days_EVI_doy2000209_aid0001 le jour de l'année doy2000209"
    texte1 <- str_sub(texte0, -7, -1)
    year0 <- str_sub(texte0, -7, -4)
    day0 <- str_sub(texte0, -3, -1)
     
    val <- as.Date(as.integer(day0), origin = paste(year0, "-01-01", sep = ""))
    Ce code est pour une date. Si vous en avez plusieurs : vectorisation ou boucle.

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Merci mais si j'aimerais faire cette conversion pour une liste de 6 rasters dans mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l1 <- list.files("D:/Rteledetection/Pivots/Doy2000", patt = "\\.tif")
    l1 <- sprintf("D:/Rteledetection/Pivots/MODIS/%s", l1)
    En fait, c'est que j'aimerais comprendre est-ce que votre script renomme le fichier en format date yyyy_dd_mm?

  9. #9
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Dans ce cas soyez précis. Vous écrivez que vous avez ceci comme entrée :MOD13Q1.006__250m_16_days_EVI_doy2000209_aid0001 le jour de l'année doy2000209.
    Je suppose que c'est une chaine de caractère qui est déjà stockée dans une variable dans R. Je ne fais donc que la traiter.
    Les lignes que je propose ne renomment rien. J'ai compris votre demande comme étant d'extraire une partie d'une chaine de caractère et de stocker cette donnée sous forme de date dans une autre variable.

    Je n'ai aucune idée de ce que vous faites avant ou après.

    A vous de voir comment exploiter ce qu'on vous offre comme aide. La fonction de ce forum est de vous guider, pas de vous écrire un code prêt à l'emploi. Une petite partie, oui. Faire tout votre boulot, non.

Discussions similaires

  1. Réponses: 11
    Dernier message: 31/01/2017, 17h07
  2. [XL-2007] Convertir des heures en année/mois/jours/heures/secondes
    Par filsdepub dans le forum Excel
    Réponses: 2
    Dernier message: 26/11/2014, 15h45
  3. Réponses: 14
    Dernier message: 11/12/2013, 14h59
  4. Convertir date jj/mm/a en 01-moi-10 dans une listbox
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/10/2010, 09h18
  5. Réponses: 1
    Dernier message: 30/04/2008, 11h00

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