slides-31octobre2015-r-donn.../slides.Rmd
François Pelletier 119724b0b4 ajout ressources
2015-10-31 11:55:03 -04:00

218 lines
3.3 KiB
Text

---
title: "Exploration de données ouvertes avec R"
author: "François Pelletier"
date: "30 octobre 2015"
output:
ioslides_presentation
---
```{r echo=FALSE}
source("style.R")
```
## Exploration de données ouvertes avec R
* François Pelletier
* francois@francoispelletier.org
* LinuQ
* 31 octobre 2015
## Contenu de la présentation
* Présentation du logiciel statistique R
* Opérateurs, objets et types
* Exemple
* Ressources
## Présentation du logiciel statistique R
* Logiciel libre
* Langage de programmation S
* Multi-paradigme: objet, impératif et fonctionnel
## Environnement
* Ensemble de fonctions de base
* Extension avec des paquets
* Extenstion écrites souvent en C, C++ et FORTRAN
```{r}
library("MASS")
```
## Développer en R
* RStudio
* Emacs + ESS
* Eclipse + StatET
## Opérateurs de base
```{r}
# Assignation
(x <- c(1,2,3))
# Extraction
(y <- data.frame(a=x[1],b=x[2]))
# Objets
(z <- y$a)
```
## Les objets en R
Les objets dans R ont une classe, un type et une dimension
```{r}
monVecteur <- c(1,2,3,4)
class(monVecteur)
typeof(monVecteur)
dim(monVecteur)
```
----
```{r}
maMatrice <- matrix(nrow = 2,ncol = 2, data = monVecteur)
class(maMatrice)
typeof(maMatrice)
dim(maMatrice)
```
## Les types en R
Nous avons vu le vecteur et la matrice.
Il y a aussi les facteurs, qui permettent d'utiliser des modalités qualitatives:
```{r}
factor(c("oui","non","non","oui","nsp","oui","non"))
```
----
les tableaux, une extension multidimensionnelle des matrices:
```{r}
array(1:8,dim=c(2,2,2))
```
----
les listes, qui sont des collections d'objets de types différents:
```{r}
list("1",TRUE,c(1,2,3),function(x) x^2)
```
----
et les cadres de données, semblables à des tables SQL:
```{r}
data.frame(numero_membre=c(1,2,3,4),
nom_membre=c("François","Jean","Marie","Stéphanie"),
age_membre=c(26,53,41,32),
stringsAsFactors = TRUE)
```
## Structures de contrôle
```{r}
# option
if(TRUE) "vrai" else "faux"
# sélection
1:5<3
(1:10)[-3:-5]
```
## Boucles
Explicites (à éviter)
```{r}
for (i in 1:2)
print(i)
```
Implicites
```{r}
y <- sapply(3:4,print)
```
## Les fonctions
Déclaration:
```{r}
maFonction <- function(x, ...)
{
if (x)
sum(...)
else
0
}
maFonction(FALSE,1,2,3)
maFonction(TRUE,1,2,3)
```
## Quelques statistiques
```{r}
set.seed(123)
mesDonnees <- rnorm(10,mean = 5,sd = 3)
range(mesDonnees)
summary(mesDonnees)
quantile(mesDonnees,c(seq(.25,.75,.25)))
```
## Un premier graphique
```{r, echo=TRUE}
library("ggplot2")
monData <-
data.frame(x=seq_along(mesDonnees),
y=mesDonnees[order(mesDonnees)])
monGraph <-
ggplot(data=monData,aes(x=x,y=y)) +
geom_line() +
theme_classic()
```
----
```{r, echo=FALSE, dev="CairoSVG"}
monGraph
```
## Un premier modèle
```{r}
(monModele <- lm(y~x,data=monData))
```
----
Sommaire du modèle
```{r, echo=FALSE}
summary(monModele)
```
----
Analyse de variance du modèle
```{r, echo=FALSE}
anova(monModele)
```
## Ressources
* [R Project](https://www.r-project.org/)
* [Revolution R](http://revolutionanalytics.com/)
* [CRAN R Other Docs (incluant livres en français)](https://cran.r-project.org/other-docs.html)
* [Wikibooks R Programming](https://en.wikibooks.org/wiki/R_Programming)
* [R Bloggers](http://www.r-bloggers.com/)
* [Awesome R](https://github.com/qinwf/awesome-R)