Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

Utilisation de fichiers xls dans R et fusions de fichiers

4 participants

Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Utilisation de fichiers xls dans R et fusions de fichiers

Message par margot julien Mer 14 Avr 2021 - 7:29

Bonjour,

j'ai une grande quantité de fichiers xls et j'aimerais donc travailler à partir de xls au lieu de csv pour éviter de tout convertir. Voici un exemple de ce que je veux faire:
1) lire des fichiers météo en format xls, j'y arrive avec le code dessous, seulement il transforme bien le "?" en "NA" mais pas les espaces ou autres sigles comme "/", comment faire pour dire de transformer tous les sigles ou espaces en "NA"?

2) j'ai 2 types de fichiers: ici "meteoLieu1.xls" et "meteoLieu2.xls" contenant 3 paramètres météo (col 2,3 et 4) pour chaque date (col1), la date est au format YYYYMMDD (on a donc un fichier par lieu avec plusieurs paramètres météo); puis le fichier "meteoParametre4Allsite.xls" contenant un 4ème paramètre météo en colonne 3 et pour tous les lieux dans un seul fichier, donc on a une colonne lieu (col1) et la colonne date est en postition2.
J'aimerais ajouter dans les fichiers "meteoLieu1.xls" et "meteoLieu2.xls" le paramètre 4 dans une nouvelle colonne qui est dans "meteoParametre4Allsite.xls" pour le lieu et la date correspondants.

Les lieux sont des facteurs et les paramètres météo: par1, par2 et par3, sont numériques, par4 est une info booléenne, comment déclarer ça avec des fichiers xls?

Auriez-vous une idée de script pour faire tout ça svp?
Merci par avance,
M.
Code:
setwd ("D:\\Rfiles\\xls")

library(readxl)
meteoLieu1<-read_excel("meteoLieu1.xlsx", 1, col_names = TRUE, na = "?")
meteoLieu1

meteoLieu2<-read_excel("meteoLieu1.xlsx", 1, col_names = TRUE, na = "?")
meteoLieu2

meteoParametre4All<-read_excel("meteoParametre4All.xlsx", 1, col_names = TRUE, na = "?")
meteoParametre4All

le fichier meteoLieu1 et meteoLieu2 donnent ceci: (les chiffres négatifs apparaissaient en rouge, c'est normal?)
Code:
> meteoLieu1<-read_excel("meteoLieu1.xlsx", 1, col_names = TRUE, na = "?")
> meteoLieu1
# A tibble: 17 x 4
date par1 par2 par3
<dbl> <dbl> <dbl> <dbl>
1 19820101 3 5 7
2 19820102 3 6 8
3 19820103 3 7 9
4 19820104 3 8 10
5 19820105 3 9 11
6 19820106 3 10 12
7 19820107 3 11 13
8 19820108 3 12 14
9 19820109 3 13 15
10 19820110 3 NA 16
11 19820111 3 15 17
12 19820112 3 16 18
13 19820113 3 17 19
14 19820114 3 18 20
15 19820115 3 19 21
16 19820116 3 20 22
17 19820117 3 21 23
>
> meteoLieu2<-read_excel("meteoLieu2.xlsx", 1, col_names = TRUE, na = "?")
> meteoLieu2
> meteoLieu2<-read_excel("meteoLieu2.xlsx", 1, col_names = TRUE, na = "?")
> meteoLieu2
# A tibble: 17 x 4
       date  par1  par2  par3
      <dbl> <dbl> <dbl> <dbl>
 1 19820101    40    10    90
 2 19820102     1    NA     9
 3 19820103   -38    -6   -72
 4 19820104   -77   -14  -153
 5 19820105  -116   -22  -234
 6 19820106  -155   -30  -315
 7 19820107  -194   -38  -396
 8 19820108  -233   -46  -477
 9 19820109  -272   -54  -558
10 19820110  -311   -62  -639
11 19820111  -350   -70  -720
12 19820112  -389   -78  -801
13 19820113  -428   -86  -882
14 19820114  -467   -94  -963
15 19820115  -506  -102 -1044
16 19820116  -545  -110 -1125
17 19820117  -584  -118 -1206



le fichier meteoParametre4All donne ceci:
Code:
> meteoParametre4All<-read_excel("meteoParametre4All.xlsx", 1, col_names = TRUE, na = "?")
> meteoParametre4All
# A tibble: 51 x 3
lieu date parametre4
<chr> <dbl> <chr>
1 lieu1 19820101 0
2 lieu1 19820102 NA
3 lieu1 19820103 0
4 lieu1 19820104 0
5 lieu1 19820105 1
6 lieu1 19820106 0
7 lieu1 19820107 1
8 lieu1 19820108 NA
9 lieu1 19820109 0
10 lieu1 19820110 /
# ... with 41 more rows
ici il transforme bien le "?" en "NA" mais pas les espaces ou autres sigles comme "/", comment faire?

margot julien

Nombre de messages : 7
Date d'inscription : 05/06/2019

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par gg Mer 14 Avr 2021 - 9:54

Question mal placée. Peut-être dans le sous-forum R.

gg

Nombre de messages : 2174
Date d'inscription : 10/01/2011

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par Ayana Mer 14 Avr 2021 - 10:15

Bonjour,

Pour ta premiere question essaye ceci:
Code:
 meteoLieu1<-read_excel("meteoLieu1.xlsx", 1, col_names = TRUE, na.strings=c("?","/"," "))

Tu peux utiliser na.strings pour définir tous les caractères de ton fichier initial que tu veux remplacer par NA.

Ayana
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

margot julien aime ce message

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par margot julien Mer 14 Avr 2021 - 18:05

Ayana a écrit:Bonjour,

Pour ta premiere question essaye ceci:
Code:
 meteoLieu1<-read_excel("meteoLieu1.xlsx", 1, col_names = TRUE, na.strings=c("?","/"," "))

Tu peux utiliser na.strings pour définir tous les caractères de ton fichier initial que tu veux remplacer par NA.

Ayana
Super ça fonctionne, merci Smile

margot julien

Nombre de messages : 7
Date d'inscription : 05/06/2019

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par giby Mer 14 Avr 2021 - 19:26

Bonjour,

Juste comme ça, tu as combien de feuilles dans tes fichiers exell?

Xls (ça existe encore?) c'est un format propriétaire avec plein de pages, alors que CSV c'est du format texte, bien plus robuste…

Pour changer les dates, recherche si elles sont dans ce format comment extraire une chaine de caractère, sinon, il y a des façon de calculer assez tordues pour le faire… Cependant… Normalement, xls code les dates en nombre de jour depuis le 1er janvier 1900… et bizarrement utilise une forme de calendrier julien. Es-tu sur de ton format?

giby

Nombre de messages : 17
Date d'inscription : 16/04/2009

margot julien aime ce message

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par margot julien Jeu 15 Avr 2021 - 9:30

giby a écrit:Bonjour,

Juste comme ça, tu as combien de feuilles dans tes fichiers exell?

Xls (ça existe encore?) c'est un format propriétaire avec plein de pages, alors que CSV c'est du format texte, bien plus robuste…

Pour changer les dates, recherche si elles sont dans ce format comment extraire une chaine de caractère, sinon, il y a des façon de calculer assez tordues pour le faire… Cependant… Normalement, xls code les dates en nombre de jour depuis le 1er janvier 1900… et bizarrement utilise une forme de calendrier julien. Es-tu sur de ton format?

Bonjour,

merci pour le retour. En réalité, c'est moi qui ai mis mes fichiers sur excel et enregistré en xls (un seul onglet), peut-être que c'était une bêtise de faire ça. Quand je télécharge mes fichiers sur la plateforme météo, ils arrivent en format .txt, le format des dates est bien YYYYMMDD.

Peut-être qu'il y aurait un moyen de les appeler avec ce format txt.?

pour le moment j'arrive à les appeler en format excel et a ajouter mon paramètre 4 avec ce code: ci-dessous.


Code:
library(readxl)
list_lieu_v2 <- lapply(
  X = paste0("Lieu", 1:2),
  meteoParametre4All = read_excel("meteoParametre4All.xlsx", 1, col_names = TRUE, na = c("?", "/", " ", "-")),
  FUN = function(lieu, meteoParametre4All) {
    tbl <-  read_excel(paste0(lieu, ".xlsx"), 1, col_names = TRUE, na = c("?", "/", " ", "-"))
    tbl[["lieu"]] <- tolower(lieu)
    merge(tbl, meteoParametre4All, by = c("lieu", "date"))
  }
)


Comment adapter ce code si je garde mes formats d'origine en txt qui ressemble à ceci par exemple pour le fichier "lieu1.txt" qui s'appelle en réalité par exemple "PARIS.txt":

stn    time           parametre4
PARIS    19820101              0
PARIS   19820102            
PARIS   19820103              0

merci par avance

margot julien

Nombre de messages : 7
Date d'inscription : 05/06/2019

Revenir en haut Aller en bas

Utilisation de fichiers xls dans R et fusions de fichiers Empty Re: Utilisation de fichiers xls dans R et fusions de fichiers

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum