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 :

Appliquer un traitement identique à une liste de dataframes


Sujet :

R

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut Appliquer un traitement identique à une liste de dataframes
    Bonjour,
    Je souhaiterais modifier des dataframes en leur appliquant un même traitement (fonction) : ici, renommage d'une colonne + sélection de variables
    Je pensais peut-être que do.call pouvait répondre à cette problématique
    Mais cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    table1<-data.frame(old=c("a","b","c"),x=1:3,y=c(10,20,30))
    table2<-data.frame(old=c("X","Y","Z"),x=7:9,y=c(100,200,300))
    liste_tables<-list("table1","table2")
     
    ma_fonction <- function (df){
      df<-df %>% 
        rename(new = old) %>%
        select(new, x, y)
      return(df)
    }
     
    do.call(ma_fonction,liste_tables)

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour avec la fonction purrr::map

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    library(tidyverse)
    table1<-data.frame(old=c("a","b","c"),x=1:3,y=c(10,20,30))
    table2<-data.frame(old=c("X","Y","Z"),x=7:9,y=c(100,200,300))
    liste_tables<-list("table1","table2")
     
    ma_fonction <- function (df){
      df<-df %>% 
        rename(new = old) %>%
        select(new, x, y)
      return(df)
    }
     
    res=map(list(table1,table2),ma_fonction)

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

Discussions similaires

  1. comment appliquer un workflow sur une liste?
    Par makinda dans le forum SharePoint
    Réponses: 1
    Dernier message: 21/04/2008, 20h42
  2. Traitement d'une liste d'objet
    Par fouyou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2007, 17h13
  3. Réponses: 5
    Dernier message: 10/10/2007, 11h29
  4. "appliquer" les css sur une liste deroulante
    Par eclipse012 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 09/10/2006, 14h44
  5. [PHP/MySql]traitement d'une liste dynamique
    Par ben_popcorn dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/09/2006, 12h51

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