mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 15:43:58 +00:00
Refactor r french translation
This commit is contained in:
parent
a6c01bf515
commit
a0ca5283d6
@ -9,9 +9,9 @@ filename: learnr-fr.r
|
|||||||
---
|
---
|
||||||
|
|
||||||
R est un langage de programmation statistique. Il dispose de nombreuses
|
R est un langage de programmation statistique. Il dispose de nombreuses
|
||||||
librairies pour le téléchargement et le nettoyage d'ensembles de données,
|
bibliothèques pour le téléchargement et le nettoyage d'ensembles de données,
|
||||||
l'exécution de procédures statistiques, et la réalisation de graphiques.
|
l'exécution de procédures statistiques, et la réalisation de graphiques.
|
||||||
On peut également exécuter les commmandes `R` au sein d'un document LaTeX.
|
On peut également exécuter des commmandes `R` au sein d'un document LaTeX.
|
||||||
|
|
||||||
|
|
||||||
```r
|
```r
|
||||||
@ -19,9 +19,11 @@ On peut également exécuter les commmandes `R` au sein d'un document LaTeX.
|
|||||||
# Les commentaires commencent avec des symboles numériques.
|
# Les commentaires commencent avec des symboles numériques.
|
||||||
|
|
||||||
# Il n'est pas possible de faire des commentaires multilignes,
|
# Il n'est pas possible de faire des commentaires multilignes,
|
||||||
# mais on peut superposer plusieurs commentaires comme ceci.
|
# mais on peut placer plusieurs commentaires les uns en dessous
|
||||||
|
# des autres comme ceci.
|
||||||
|
|
||||||
# Sur Windows ou Mac, taper COMMAND-ENTER pour exécuter une ligne
|
# Sur Mac, taper COMMAND-ENTER pour exécuter une ligne
|
||||||
|
# et sur Windows taper CTRL-ENTER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -43,7 +45,7 @@ head(rivers) # donne un aperçu des données
|
|||||||
|
|
||||||
length(rivers) # Combien de rivers ont été mesurées ?
|
length(rivers) # Combien de rivers ont été mesurées ?
|
||||||
# 141
|
# 141
|
||||||
summary(rivers) # Quels sont les principales données statistiques ?
|
summary(rivers) # Quelles sont les principales données statistiques ?
|
||||||
# Min. 1st Qu. Median Mean 3rd Qu. Max.
|
# Min. 1st Qu. Median Mean 3rd Qu. Max.
|
||||||
# 135.0 310.0 425.0 591.2 680.0 3710.0
|
# 135.0 310.0 425.0 591.2 680.0 3710.0
|
||||||
|
|
||||||
@ -99,7 +101,7 @@ stem(log(rivers)) # Notez que les données ne sont ni normales
|
|||||||
# 80 |
|
# 80 |
|
||||||
# 82 | 2
|
# 82 | 2
|
||||||
|
|
||||||
# Fais un histogramme :
|
# Fait un histogramme :
|
||||||
hist(rivers, col="#333333", border="white", breaks=25) # amusez-vous avec ces paramètres
|
hist(rivers, col="#333333", border="white", breaks=25) # amusez-vous avec ces paramètres
|
||||||
hist(log(rivers), col="#333333", border="white", breaks=25) # vous ferez plus de tracés plus tard
|
hist(log(rivers), col="#333333", border="white", breaks=25) # vous ferez plus de tracés plus tard
|
||||||
|
|
||||||
@ -110,7 +112,7 @@ plot(discoveries, col="#333333", lwd=3, xlab="Year",
|
|||||||
plot(discoveries, col="#333333", lwd=3, type = "h", xlab="Year",
|
plot(discoveries, col="#333333", lwd=3, type = "h", xlab="Year",
|
||||||
main="Number of important discoveries per year")
|
main="Number of important discoveries per year")
|
||||||
|
|
||||||
# Plutôt que de laisser l'ordre par défaut (par années)
|
# Plutôt que de laisser l'ordre par défaut (par année)
|
||||||
# Nous pourrions aussi trier pour voir ce qu'il y a de typique
|
# Nous pourrions aussi trier pour voir ce qu'il y a de typique
|
||||||
sort(discoveries)
|
sort(discoveries)
|
||||||
# [1] 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
|
# [1] 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
|
||||||
@ -142,7 +144,7 @@ summary(discoveries)
|
|||||||
# Min. 1st Qu. Median Mean 3rd Qu. Max.
|
# Min. 1st Qu. Median Mean 3rd Qu. Max.
|
||||||
# 0.0 2.0 3.0 3.1 4.0 12.0
|
# 0.0 2.0 3.0 3.1 4.0 12.0
|
||||||
|
|
||||||
# Lance un dès plusieurs fois
|
# Lance un dé plusieurs fois
|
||||||
round(runif(7, min=.5, max=6.5))
|
round(runif(7, min=.5, max=6.5))
|
||||||
# 1 4 6 1 4 6 4
|
# 1 4 6 1 4 6 4
|
||||||
# Vos numéros diffèreront des miens à moins que nous mettions
|
# Vos numéros diffèreront des miens à moins que nous mettions
|
||||||
@ -164,11 +166,11 @@ rnorm(9)
|
|||||||
# les entiers, les numériques, les caractères, les logiques, et les facteurs.
|
# les entiers, les numériques, les caractères, les logiques, et les facteurs.
|
||||||
|
|
||||||
# LES ENTIERS
|
# LES ENTIERS
|
||||||
# Les entiers de mémoire longue sont écrit avec L
|
# Les entiers de type long sont écrits avec L
|
||||||
5L # 5
|
5L # 5
|
||||||
class(5L) # "integer"
|
class(5L) # "integer"
|
||||||
# (Essayez ?class pour plus d'informations sur la fonction class().)
|
# (Essayez ?class pour plus d'informations sur la fonction class().)
|
||||||
# Avec R, chaque valeur seule, comme 5L, est considéré comme
|
# Avec R, chaque valeur seule, comme 5L, est considérée comme
|
||||||
# un vecteur de longueur 1
|
# un vecteur de longueur 1
|
||||||
length(5L) # 1
|
length(5L) # 1
|
||||||
# On peut avoir un vecteur d'entiers avec une longueur > 1 :
|
# On peut avoir un vecteur d'entiers avec une longueur > 1 :
|
||||||
@ -191,7 +193,7 @@ c(3,3,3,2,2,1) # 3 3 3 2 2 1
|
|||||||
class(Inf) # "numeric"
|
class(Inf) # "numeric"
|
||||||
class(-Inf) # "numeric"
|
class(-Inf) # "numeric"
|
||||||
# Vous pouvez utiliser "Inf", par exemple, dans integrate(dnorm, 3, Inf);
|
# Vous pouvez utiliser "Inf", par exemple, dans integrate(dnorm, 3, Inf);
|
||||||
# Ça permet d'éviter des tableaux Z-scores.
|
# Ça permet d'éviter de réaliser une table de la loi normale.
|
||||||
|
|
||||||
# ARITHMÉTIQUES DE BASE
|
# ARITHMÉTIQUES DE BASE
|
||||||
# Vous pouvez faire de l'arithmétique avec des nombres
|
# Vous pouvez faire de l'arithmétique avec des nombres
|
||||||
@ -233,7 +235,7 @@ letters
|
|||||||
# [20] "t" "u" "v" "w" "x" "y" "z"
|
# [20] "t" "u" "v" "w" "x" "y" "z"
|
||||||
month.abb # "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
|
month.abb # "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
|
||||||
|
|
||||||
# LES TYPES LOGIQUES
|
# LES TYPES BOOLÉENS
|
||||||
# En R, un "logical" est un booléen
|
# En R, un "logical" est un booléen
|
||||||
class(TRUE) # "logical"
|
class(TRUE) # "logical"
|
||||||
class(FALSE) # "logical"
|
class(FALSE) # "logical"
|
||||||
@ -256,15 +258,16 @@ c('Z', 'o', 'r', 'r', 'o') == "Zorro" # FALSE FALSE FALSE FALSE FALSE
|
|||||||
c('Z', 'o', 'r', 'r', 'o') == "Z" # TRUE FALSE FALSE FALSE FALSE
|
c('Z', 'o', 'r', 'r', 'o') == "Z" # TRUE FALSE FALSE FALSE FALSE
|
||||||
|
|
||||||
# LES FACTEURS
|
# LES FACTEURS
|
||||||
# La classe facteur sert pour les données catégorielles
|
# Les facteurs sont généralement utilisés pour y stocker des
|
||||||
# les facteurs peuvent être ordonnés (comme les niveaux de
|
# variables qualitatives (catégorielles).
|
||||||
# catégorie d'enfants)
|
# Les facteurs peuvent être ordonnés (comme le niveau scolaire
|
||||||
# ou non ordonnés (comme le sexe)
|
# des enfants) ou non ordonnés (comme le sexe)
|
||||||
factor(c("female", "female", "male", NA, "female"))
|
factor(c("female", "female", "male", NA, "female"))
|
||||||
# female female male <NA> female
|
# female female male <NA> female
|
||||||
# Les niveaux : female male
|
# Les niveaux : female male
|
||||||
# Les "levels" sont les valeurs que les données catégorielles
|
# Les facteurs possèdent un attribut appelé niveau ("level").
|
||||||
# peuvent prendre
|
# Les niveaux sont des vecteurs contenant toutes les valeurs
|
||||||
|
# que peuvent prendre les données catégorielles.
|
||||||
# Notez que les données manquantes n'entrent pas dans le niveau
|
# Notez que les données manquantes n'entrent pas dans le niveau
|
||||||
levels(factor(c("male", "male", "female", NA, "female"))) # "female" "male"
|
levels(factor(c("male", "male", "female", NA, "female"))) # "female" "male"
|
||||||
# Si le vecteur de facteurs a une longueur 1, ses niveaux seront
|
# Si le vecteur de facteurs a une longueur 1, ses niveaux seront
|
||||||
@ -288,8 +291,8 @@ parakeet
|
|||||||
# =>
|
# =>
|
||||||
# NULL
|
# NULL
|
||||||
|
|
||||||
# LES CONTRAINTES DE TYPES
|
# LES CONVERSIONS DE TYPES
|
||||||
# Les contraintes de types servent à forcer une valeur à prendre
|
# Les conversions de types servent à forcer une valeur à prendre
|
||||||
# un type différent
|
# un type différent
|
||||||
as.character(c(6, 8)) # "6" "8"
|
as.character(c(6, 8)) # "6" "8"
|
||||||
as.logical(c(1,0,1,1)) # TRUE FALSE TRUE TRUE
|
as.logical(c(1,0,1,1)) # TRUE FALSE TRUE TRUE
|
||||||
@ -304,7 +307,7 @@ as.numeric("Bilbo")
|
|||||||
# NAs est introduit par coercition
|
# NAs est introduit par coercition
|
||||||
|
|
||||||
# Notez également : ce n'étaient que des types de données basiques
|
# Notez également : ce n'étaient que des types de données basiques
|
||||||
# Il y a beaucoup d'autres types de données, comme pour les dates,
|
# Il y a beaucoup d'autres types de données, comme les dates,
|
||||||
# les séries temporelles, etc ...
|
# les séries temporelles, etc ...
|
||||||
|
|
||||||
|
|
||||||
@ -321,7 +324,7 @@ as.numeric("Bilbo")
|
|||||||
|
|
||||||
# LES VARIABLES
|
# LES VARIABLES
|
||||||
# Beaucoup de façons d'assigner des choses :
|
# Beaucoup de façons d'assigner des choses :
|
||||||
x = 5 # c'est possible
|
x = 5 # c'est correct
|
||||||
y <- "1" # c'est préféré
|
y <- "1" # c'est préféré
|
||||||
TRUE -> z # ça marche mais c'est bizarre
|
TRUE -> z # ça marche mais c'est bizarre
|
||||||
|
|
||||||
@ -337,11 +340,11 @@ while (a > 4) {
|
|||||||
a <- a - 1
|
a <- a - 1
|
||||||
}
|
}
|
||||||
# Gardez à l'esprit que les boucles for et while s'exécutent lentement
|
# Gardez à l'esprit que les boucles for et while s'exécutent lentement
|
||||||
# en R
|
# en R.
|
||||||
# Des opérations sur des vecteurs entiers (ex une ligne entière,
|
# Des opérations sur la totalité d'un vecteur (ex une ligne entière,
|
||||||
# une colonne entière),
|
# une colonne entière),
|
||||||
# ou les fonctions de type apply() (nous en parlerons plus tard),
|
# ou les fonctions de type apply() (nous en parlerons plus tard),
|
||||||
# sont préférées
|
# sont préférées.
|
||||||
|
|
||||||
# IF/ELSE
|
# IF/ELSE
|
||||||
# Encore une fois assez standard
|
# Encore une fois assez standard
|
||||||
@ -356,7 +359,7 @@ if (4 > 3) {
|
|||||||
# LES FONCTIONS
|
# LES FONCTIONS
|
||||||
# se définissent comme ceci :
|
# se définissent comme ceci :
|
||||||
jiggle <- function(x) {
|
jiggle <- function(x) {
|
||||||
x = x + rnorm(1, sd=.1) #add in a bit of (controlled) noise
|
x = x + rnorm(1, sd=.1) # ajoute un peu de bruit (contrôlé)
|
||||||
return(x)
|
return(x)
|
||||||
}
|
}
|
||||||
# Appelées comme n'importe quelles autres fonction R :
|
# Appelées comme n'importe quelles autres fonction R :
|
||||||
@ -366,7 +369,7 @@ jiggle(5) # 5±ε. After set.seed(2716057), jiggle(5)==5.005043
|
|||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Les structures de données : les vecteurs, les matrices,
|
# Les structures de données : les vecteurs, les matrices,
|
||||||
# les data frame et les tableaux
|
# les data frames et les tableaux
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
# À UNE DIMENSION
|
# À UNE DIMENSION
|
||||||
@ -387,7 +390,7 @@ which(vec %% 2 == 0) # 1 3
|
|||||||
# Récupèrer seulement les premières ou dernières entrées du vecteur,
|
# Récupèrer seulement les premières ou dernières entrées du vecteur,
|
||||||
head(vec, 1) # 8
|
head(vec, 1) # 8
|
||||||
tail(vec, 2) # 10 11
|
tail(vec, 2) # 10 11
|
||||||
# ou trouver si un certaine valeur est dans le vecteur
|
# ou vérifier si un certaine valeur est dans le vecteur
|
||||||
any(vec == 10) # TRUE
|
any(vec == 10) # TRUE
|
||||||
# Si un index "dépasse" vous obtiendrez NA :
|
# Si un index "dépasse" vous obtiendrez NA :
|
||||||
vec[6] # NA
|
vec[6] # NA
|
||||||
@ -398,7 +401,7 @@ length(vec) # 4
|
|||||||
vec * 4 # 16 20 24 28
|
vec * 4 # 16 20 24 28
|
||||||
vec[2:3] * 5 # 25 30
|
vec[2:3] * 5 # 25 30
|
||||||
any(vec[2:3] == 8) # FALSE
|
any(vec[2:3] == 8) # FALSE
|
||||||
# Et R a beaucoup de fonctions préconstruites pour résumer les vecteurs
|
# Et R a beaucoup de méthodes statistiques pré-construites pour les vecteurs :
|
||||||
mean(vec) # 9.5
|
mean(vec) # 9.5
|
||||||
var(vec) # 1.666667
|
var(vec) # 1.666667
|
||||||
sd(vec) # 1.290994
|
sd(vec) # 1.290994
|
||||||
@ -425,7 +428,7 @@ mat
|
|||||||
# Différemment du vecteur, la classe d'une matrice est "matrix",
|
# Différemment du vecteur, la classe d'une matrice est "matrix",
|
||||||
# peut importe ce qu'elle contient
|
# peut importe ce qu'elle contient
|
||||||
class(mat) # => "matrix"
|
class(mat) # => "matrix"
|
||||||
# Demander la première ligne
|
# Récupérer la première ligne
|
||||||
mat[1,] # 1 4
|
mat[1,] # 1 4
|
||||||
# Réaliser une opération sur la première colonne
|
# Réaliser une opération sur la première colonne
|
||||||
3 * mat[,1] # 3 6 9
|
3 * mat[,1] # 3 6 9
|
||||||
@ -502,13 +505,13 @@ dim(students) # 6 3
|
|||||||
# stringsAsFactors = FALSE quand vous créer la data.frame
|
# stringsAsFactors = FALSE quand vous créer la data.frame
|
||||||
?data.frame
|
?data.frame
|
||||||
|
|
||||||
# Il y a plusieurs façons de subdiviser les trames de données
|
# Il y a plusieurs façons de subdiviser les data frames,
|
||||||
# toutes subtilement différentes
|
# toutes subtilement différentes
|
||||||
students$year # 3 2 2 1 0 -1
|
students$year # 3 2 2 1 0 -1
|
||||||
students[,2] # 3 2 2 1 0 -1
|
students[,2] # 3 2 2 1 0 -1
|
||||||
students[,"year"] # 3 2 2 1 0 -1
|
students[,"year"] # 3 2 2 1 0 -1
|
||||||
|
|
||||||
# Une version augmentée de la structure data.frame est data.table
|
# Une version améliorée de la structure data.frame est data.table.
|
||||||
# Si vous travaillez avec des données volumineuses ou des panels, ou avez
|
# Si vous travaillez avec des données volumineuses ou des panels, ou avez
|
||||||
# besoin de fusionner quelques ensembles de données, data.table peut être
|
# besoin de fusionner quelques ensembles de données, data.table peut être
|
||||||
# un bon choix. Ici un tour éclair :
|
# un bon choix. Ici un tour éclair :
|
||||||
@ -601,15 +604,15 @@ students[students$house != "G",]
|
|||||||
|
|
||||||
# MULTI-DIMENSIONNELLE (TOUS ÉLÉMENTS D'UN TYPE)
|
# MULTI-DIMENSIONNELLE (TOUS ÉLÉMENTS D'UN TYPE)
|
||||||
|
|
||||||
# Les arrays créent des tableaux de n dimensions
|
# Les arrays créent des tableaux de n dimensions.
|
||||||
# Tous les éléments doivent être du même type
|
# Tous les éléments doivent être du même type.
|
||||||
# Vous pouvez faire un tableau à 2 dimensions (une sorte de matrice)
|
# Vous pouvez faire un tableau à 2 dimensions (une sorte de matrice)
|
||||||
array(c(c(1,2,4,5),c(8,9,3,6)), dim=c(2,4))
|
array(c(c(1,2,4,5),c(8,9,3,6)), dim=c(2,4))
|
||||||
# =>
|
# =>
|
||||||
# [,1] [,2] [,3] [,4]
|
# [,1] [,2] [,3] [,4]
|
||||||
# [1,] 1 4 8 3
|
# [1,] 1 4 8 3
|
||||||
# [2,] 2 5 9 6
|
# [2,] 2 5 9 6
|
||||||
# Vous pouvez utiliser array pour faire des matrices à 3 dimensions aussi
|
# Vous pouvez aussi utiliser array pour faire des matrices à 3 dimensions :
|
||||||
array(c(c(c(2,300,4),c(8,9,0)),c(c(5,60,0),c(66,7,847))), dim=c(3,2,2))
|
array(c(c(c(2,300,4),c(8,9,0)),c(c(5,60,0),c(66,7,847))), dim=c(3,2,2))
|
||||||
# =>
|
# =>
|
||||||
# , , 1
|
# , , 1
|
||||||
@ -629,7 +632,7 @@ array(c(c(c(2,300,4),c(8,9,0)),c(c(5,60,0),c(66,7,847))), dim=c(3,2,2))
|
|||||||
# LES LISTES (MULTI-DIMENSIONNELLES, ÉVENTUELLEMMENT DÉCHIRÉES,
|
# LES LISTES (MULTI-DIMENSIONNELLES, ÉVENTUELLEMMENT DÉCHIRÉES,
|
||||||
# DE DIFFÉRENTS TYPES)
|
# DE DIFFÉRENTS TYPES)
|
||||||
|
|
||||||
# Enfin R a des listes (de vecteurs)
|
# Enfin, R a des listes (de vecteurs)
|
||||||
list1 <- list(time = 1:40)
|
list1 <- list(time = 1:40)
|
||||||
list1$price = c(rnorm(40,.5*list1$time,4)) # random
|
list1$price = c(rnorm(40,.5*list1$time,4)) # random
|
||||||
list1
|
list1
|
||||||
@ -644,10 +647,10 @@ list1[[1]] # encore une façon différente
|
|||||||
list1$price[4]
|
list1$price[4]
|
||||||
|
|
||||||
# Les listes ne sont pas les structures de données les plus efficaces
|
# Les listes ne sont pas les structures de données les plus efficaces
|
||||||
# à utiliser avec R;
|
# à utiliser avec R ;
|
||||||
# À moins d'avoir une très bonne raison, vous devriez utiliser data.frames
|
# À moins d'avoir une très bonne raison, vous devriez utiliser data.frames
|
||||||
# Les listes sont souvent retournées par des fonctions qui effectuent
|
# Les listes sont souvent retournées par des fonctions qui effectuent
|
||||||
# des régressions linéaires
|
# des régressions linéaires.
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# La famille de fonction apply()
|
# La famille de fonction apply()
|
||||||
@ -674,7 +677,7 @@ apply(mat, MAR = 2, jiggle)
|
|||||||
|
|
||||||
# Ne soyez pas trop intimidé ; tout le monde reconnaît que c'est un peu déroutant
|
# Ne soyez pas trop intimidé ; tout le monde reconnaît que c'est un peu déroutant
|
||||||
|
|
||||||
# Le paque plyr vise à remplacer (et améliorer !) la famille *apply().
|
# Le paquet plyr vise à remplacer (et améliorer !) la famille *apply().
|
||||||
install.packages("plyr")
|
install.packages("plyr")
|
||||||
require(plyr)
|
require(plyr)
|
||||||
?plyr
|
?plyr
|
||||||
@ -704,7 +707,7 @@ write.csv(pets, "pets2.csv") # to make a new .csv file
|
|||||||
# Les tracés
|
# Les tracés
|
||||||
################
|
################
|
||||||
|
|
||||||
# LES FONCTIONS DE TRACÉS PRÉCONSTRUITES
|
# LES FONCTIONS DE TRACÉ PRÉCONSTRUITES
|
||||||
# Les diagrammes de dispersion !
|
# Les diagrammes de dispersion !
|
||||||
plot(list1$time, list1$price, main = "fake data")
|
plot(list1$time, list1$price, main = "fake data")
|
||||||
# Les régressions !
|
# Les régressions !
|
||||||
@ -737,7 +740,7 @@ pp + geom_point()
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Comment j'obtiens R ?
|
## Comment obtenir R ?
|
||||||
|
|
||||||
* Obtiens R et R GUI depuis [http://www.r-project.org/](http://www.r-project.org/)
|
* Obtiens R et R GUI depuis [http://www.r-project.org/](http://www.r-project.org/)
|
||||||
* [RStudio](http://www.rstudio.com/ide/) est un autre GUI
|
* [RStudio](http://www.rstudio.com/ide/) est un autre GUI
|
||||||
|
Loading…
Reference in New Issue
Block a user