La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction à la manipulation de données (dplyR) S. CHAMPELY Université Lyon 1.

Présentations similaires


Présentation au sujet: "Introduction à la manipulation de données (dplyR) S. CHAMPELY Université Lyon 1."— Transcription de la présentation:

1 Introduction à la manipulation de données (dplyR) S. CHAMPELY Université Lyon 1

2 Le package dplyR Créé par Hadley Wickham et Romain Francois Une “grammaire” pour la manipulation de données… De la même façon que ggplot2 est une “grammaire” pour les graphiques

3 Les objets tbl Du data.frame au tbl_df > library(MASS) > data(survey) > head(survey) > class(survey) > library(dplyr) > survey2<-tbl_df(survey) > print(survey2) > glimpse(survey2) > class(survey2) [1] "tbl_df" "tbl" "data.frame"

4 Les « verbes » principaux filter() arrange() select() distinct() mutate() summarise() sample_n() ; sample_frac()

5 Filtrage > filter(survey2, Sex=="Female", Pulse==80) [et] > filter(survey2,Sex=="Female" | Pulse==80) [ou] > filter(survey2, Pulse>80, Pulse<85) Équivalent à subset dans R

6 Ordonner arrange(survey2,Pulse,Sex) (ordre croissant) arrange(survey2,desc(Pulse),Sex) (décroissant)

7 Sélection de colonnes > select(survey2,Sex,Height) (REM :il peut y avoir une mauvaise surprise entre MASS et dplyr à cause de select qui est dans les deux packages) > select(survey2,Sex:Pulse)

8 Nouvelles colonnes mutate(survey2,diff=abs(Wr.Hnd-NW.Hnd))

9 Faire un résumé > summarise(survey2,main=mean(Wr.Hnd)) Ah oui… les données manquantes > summarise(survey2, main=mean(Wr.Hnd,na.rm=TRUE)) Un résumé un peu court… > summarise(survey2, Mmain=mean(Wr.Hnd,na.rm=TRUE), SDmain=sd(Wr.Hnd,na.rm=TRUE)) Les fonctions avec lesquelles il est possible de jouer : Les classiques : min(), max(), mean(), sum(), sd(), median(), and IQR() mais aussi dans dplyr: n(), n_distinct(), first(x), last(x) et nth(x, n) Mais au fond, cela sert à quoi par rapport à summary ?

10 Données groupées > fumer <- group_by(survey2, Smoke) > summarise(fumer, Mmain=mean(Wr.Hnd,na.rm=TRUE), SDmain=sd(Wr.Hnd,na.rm=TRUE)) > summarise(fumer, Mmain=mean(Wr.Hnd,na.rm=TRUE), SDmain=sd(Wr.Hnd,na.rm=TRUE), Nombre=n()) > fumer2 <- group_by(survey2, Smoke, Sex) > summarise(fumer2, Mmain=mean(Wr.Hnd,na.rm=TRUE), SDmain=sd(Wr.Hnd,na.rm=TRUE), Nombre=n())

11 Enchaîner les opérations > t1 60) > t2<-mutate(t1,diff=abs(Wr.Hnd-NW.Hnd)) > t3<-group_by(t2,Sex,W.Hnd) > t4<-summarise(t3,Mmain=mean(Wr.Hnd,na.rm=TRUE),Dmain=mean(diff,na.rm=TRUE),Nombre=n()) OU ALORS > summarise( group_by( mutate( dplyr::select(survey2,Pulse>60),diff=abs(Wr.Hnd-NW.Hnd)),Sex,W.Hnd),Mmain=mean(Wr.Hnd,na.rm=TRUE),Dmain=mean(diff,na.rm=TRUE),Nombre=n()) OU ALORS AVEC UN OPERATEUR DE « PIPE » > survey2 %>% dplyr::select(Pulse>60) %>% mutate(diff=abs(Wr.Hnd-NW.Hnd)) %>% group_by(Sex,W.Hnd) %>% summarise(Mmain=mean(Wr.Hnd,na.rm=TRUE),Dmain=mean(diff,na.rm=TRUE),Nombre=n())


Télécharger ppt "Introduction à la manipulation de données (dplyR) S. CHAMPELY Université Lyon 1."

Présentations similaires


Annonces Google