CUEJ master 2 2019/20 - Elections européennes 2019

Organisation

On va avoir plein de fichiers. Il faut s'organiser, faire des sauvegardes fréquentes, des sous-dossiers, découper ses programmes en fonction des tâches, etc. C'est VRAIMENT important, sous peine de perdre un temps fou.

R

Lancer R

En principe, R est installé sur les Macs.

iconeR

C'est rustique :

interfaceR

Premiers pas

Tapez les commandes suivantes, les unes après les autres, suivie de "Entrée" :

3 + 6
8^2
a <- 4
b <- 5
a * b
a == b
a < b
a
b
a * b
c <- 'c'
d <- 'd'
c + d
paste(c, d, sep = '')

 

A retenir :

Référence : les opérateurs R

Deux interfaces pour R :

Rstudio

Définir le répertoire de travail

Exemple :

setwd("/Users/eguidat/Documents/Cours/cuej2-18/files")

ou bien

setwd("~/Desktop/Seafile/CUEJM2/CUEJ18-19")

setwd = Set Working Directory

Les vecteurs

Dans la fenêtre de scripts, tapez :

vec1 <- c(1, 2, 3)
vec2 <- c(2,3,4)

Puis :

Notez que les vecteurs sont visibles dans la fenêtre Environment

Essayez :

vec1 + vec2
vec1 * vec2
sum(vec1)
mean(vec2)

On peut aussi stocker des chaines (mais pas mélanger numérique et chaînes) :

vec3 <- c('Rouge', 'Vert', 'Bleu')
vec4 <- c('carmin', "d'eau", 'azur')
vec5 <- paste(vec3, vec4, sep = " ")
vec5

A retenir :

Essayez :

villeA <- c(1503, 1458, 125, 128)
villeB <- c(3851, 3275, 410, 415)

villeA[2]
villeA[c(1, 4)]
villeA[1:3]

noms <- c("femmes", "hommes", "naisF", "naisG")
names(villeA) <- noms
names(villeB) <- noms
villeB['femmes']

Exercice : déterminer si le taux de natalité de la ville B est supérieur à celui de la ville A. Le taux de natalité est le rapport de l'ensemble des naissances à l'ensemble de la population

Les matrices

Essayez :

villesAB <- matrix(c(1503, 1458, 12, 13, 3851, 3275, 41, 45), byrow = TRUE, nrow = 2)

Cliquez (une fois) sur villeAB dans l'onglet Environment.

Exercice : intuitivement, essayez de trouver une syntaxe plus simple.

Exercice : comme nous l'avons fait pour les vecteurs, esayez de donner des noms aux colonne et aux lignes de cette matrice. Indice : rawnames() et colnames()

A retenir :

Essayez :

villeC <- c(3002, 2896, 59, 60)
villesABC <- rbind(villesAB, villeC)

sommesCol <- colSums(villesABC)
sommesLig <- rowSums(villesABC)

villesABC <- rbind(villesABC, sommesCol)
villesABC <- cbind(villesABC, sommesLig)

Notez le warning. C'est différent d'une erreur. L'instruction s'est exécutée mais il y a eu un truc bizarre.

Exercice : corrigez le programme pour éviter le warning

Essayez :

villesABC[,2]
villesABC[,'hommes']

villesABC[3,]
villesABC['villeC',]

villesABC[2,3]
villesABC['villeA', 'naisF']

villesABC[1:3, 2:3]

Les facteurs

Essayez :

tailles <- c("g", "g", "m", "p", "g", "p", "m", "g", "p")
summary(tailles)

fTailles <- factor(tailles)
levels(fTailles)
summary(fTailles)

fTailles <- factor(tailles, order = TRUE, levels = c("p", "m", "g"))
levels(fTailles)
summary(fTailles)

levels(fTailles) <- c("petit", "moyen", "grand")
levels(fTailles)
summary(fTailles)

A retenir :

Les tableaux de données

Les tableaux de données, ou date frames, combinent tout ce que nous avons vu jusqu'à présent.

Essayez :

#1.
femmes <- c(1503, 3851, 3002, 6120, 150, 305)
hommes <- c(1458, 3275, 2896, 5996, 146, 298)
naisF <- c(41, 59, 131, 2, 3, 5)
naisG <- c(13, 45, 60, 142, 2, 4)
type <- factor(c("rural", "urbain", "peri", "urbain", "rural", "rural"))
richesse <- factor(c("riche", "moyen", "pauvre", "moyen","riche", "pauvre"),
                   order = TRUE,
                   levels = c("pauvre", "moyen", "riche"))
politique <- factor(c("gauche", "droite", "gauche", "gauche", "droite", "centre"))
villes <- c("villeA", "villeB", "villeC", "villeD", "villeE", "villeF")

df <- data.frame(
  femmes, hommes, naisF, naisG, type, richesse, politique,
  row.names = villes
)

#2.
str(df)

df[,3]
df[4,]
df[2,4]
df["villeC",]
df["villeD","femmes"]

# 3. Une manière aisée de sélectionner une colonne dans un data frame
df$naisF

#4. pour sélectionner des lignes selon une condition ou des conditions
subset(df, politique == "gauche")
subset(df, politique == "gauche" & naisG > 40) # le signe pour 'ou' est |, alt+maj+L sur un Mac

#5.  les trucs vus avant marchent toujours
sum(df$hommes)

L'aide

Pour obtenir de l'aide sur une fonction, il faut taper ? suivi du nom de la fonction, sans espace

?c
?str

Sauvegarde

Pensez à sauver souvent votre programme. R est très stable mais on ne sait jamais.

Le programme n'est qu'un simple ficher texte. Il ne comporte pas les données.