1 + 1
[1] 2
pi
[1] 3.141593
sin(0)
[1] 0
sin(3*pi/2)
[1] -1
Dans la console exécuter les lignes suivantes :
1 + 1
[1] 2
pi
[1] 3.141593
sin(0)
[1] 0
sin(3*pi/2)
[1] -1
A partir de maintenant toutes les commandes seront enregistrées dans un fichier script que vous nommerez TD1.R Pour ce faire : File -> New File -> R Script
La plupart des fonctions mathématiques sont définies dans R (library base)
Une variable est un objet référencé dans le programme qui associe un identificateur à une valeur d’un certain type.
=2
xprint(x)
[1] 2
mode(x)
[1] "numeric"
## Supprimer x
rm(x)
Les variables contenant des caractères (on utilise ““)
<-"bonjour"
xprint(x)
[1] "bonjour"
mode(x)
[1] "character"
Les variables contenant des booléens (vrai ou faux)
<-TRUE
xprint(x)
[1] TRUE
mode(x)
[1] "logical"
<-c(1.5,2,3.2,-1.5,0,-1)
a1<-c("fille","garçon","fille","fille","fille","fille")
a2<-c(TRUE,FALSE,TRUE,TRUE) a3
On peut déterminer la nature du vecteur en utilisant class() :
class(a1)
[1] "numeric"
class(a2)
[1] "character"
class(a3)
[1] "logical"
Exercice :
Combiner les vecteurs a1 et a2 dans un nouveau vecteur a.
Quelle est la classe du résultat ?
<-c(a1,a2)
aclass(a)
[1] "character"
Exercice : créer un vecteur avec 5 fois fille et 10 fois garçon.
rep(5,10)
[1] 5 5 5 5 5 5 5 5 5 5
rep("fille",10)
[1] "fille" "fille" "fille" "fille" "fille" "fille" "fille" "fille" "fille"
[10] "fille"
seq(0,1,by=0.1)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
seq(10,20,by=5)
[1] 10 15 20
La fonction length() permet de calculer le nombre de valeurs d’un vecteur (quelle que soit la nature du vecteur considéré).
length(a1)
[1] 6
length(a2)
[1] 6
Chaque élément d’un vecteur est repéré par un indice entre [].
1] a1[
[1] 1.5
3] a1[
[1] 3.2
# Opérations sur les éléments d'un vecteur
1]+a1[3] a1[
[1] 4.7
1]/a1[3] a1[
[1] 0.46875
On peut changer la valeur de a1[3] en lui affectant une nouvelle valeur :
3]<- -3
a1[ a1
[1] 1.5 2.0 -3.0 -1.5 0.0 -1.0
On peut aussi ajouter de nouvelles valeurs aux vecteurs a1
12]<-10
a1[13]<-11 a1[
On peut ajouter, soustraire, multiplier des vecteurs entre eux à condition qu’ils soient de même longeur et qu’ils soient numériques.
<-seq(10,20,by=1)
a1<-seq(20,30,by=1)
a2+a2 a1
[1] 30 32 34 36 38 40 42 44 46 48 50
-a1 a2
[1] 10 10 10 10 10 10 10 10 10 10 10
*a2 a1
[1] 200 231 264 299 336 375 416 459 504 551 600
/a1 a2
[1] 2.000000 1.909091 1.833333 1.769231 1.714286 1.666667 1.625000 1.588235
[9] 1.555556 1.526316 1.500000
^2*log(a2) a1
[1] 299.5732 368.3872 445.1101 529.8985 622.8986 724.2471 834.0727
[8] 952.4969 1079.6343 1215.5938 1360.4790
Toutes les fonctions prédéfinies dans R possèdent une vignette (description des arguments de la fonction, des sorties et un exemple utilisant la fonction). Pour accéder à cette aide on met un point d’interrogation devant le nom de la fonction.
Exemple : Décrire la fonction sample
?sample
Une fonction comporte plusieurs arguments. Par exemple sample(x, size, replace = FALSE, prob = NULL)
Parmi les arguments, certains sont obligatoires
d’autres sont facultatifs (ils ont des valeurs par défaut) ici replace et prob.
sample(-10:10,1)
[1] 7
sample(-10:10,3)
[1] 5 -3 4
l’opérateur | correspond à OU : A | B est faux lorsque les deux événements A et B sont faux simultanément et est vrai dans tous les autres cas.
l’opérateur & correspond à ET : A & B est vrai uniquement lorsque les deux événements A et B sont vrais et est faux dans tous les autres cas.
On définit un vecteur
set.seed("44")
=sample(-20:20,40,T) x
On veut savoir combien de valeurs de x sont postives.
sum(x>0)
[1] 15
Quelles sont les positions de ces valeurs ?
which(x>0)
[1] 2 7 8 16 18 21 22 24 26 27 30 32 33 35 39
Quels sont les indices des valeurs supérieure à 5 ou inférieure à 0 ?
which(x>5 | x<0)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 22 23 24 25 26 27 28
[26] 29 30 31 32 33 34 35 36 37 38 39 40
Quels sont les indices des valeurs dans [5,10] ?
which(x>=5 & x<=10)
[1] 8 32 39
<-c("Nantes", "Brest", "Rennes", "Angers","Le Mans") x
1] x[
[1] "Nantes"
-1] x[
[1] "Brest" "Rennes" "Angers" "Le Mans"
1:3] x[
[1] "Nantes" "Brest" "Rennes"
c(2,4)] x[
[1] "Brest" "Angers"
sort(x)
[1] "Angers" "Brest" "Le Mans" "Nantes" "Rennes"
rev(sort(x))
[1] "Rennes" "Nantes" "Le Mans" "Brest" "Angers"
<-seq(2,100,by=2) y
<-seq(1,100,2)
z<-y+z S
length(x)
[1] 5
<-c(rep("ding",4),rep("dong",4)) sonette
<-sample(c("ding","dong"),100,replace=T) melodie
table(melodie)
melodie
ding dong
51 49
<-rnorm(100) x
sum(x)
[1] 6.836133
mean(x)
[1] 0.06836133
quantile(x)
0% 25% 50% 75% 100%
-1.7635615 -0.4989122 -0.0209831 0.5305801 2.5839972
<-(x>0) y
< -1)|(x>1) (x
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
[13] TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
[25] TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
[37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
[49] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
[61] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE
[73] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
[85] FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE
[97] FALSE FALSE FALSE FALSE
which(x<0)
[1] 3 4 5 8 9 10 12 16 19 20 21 24 29 30 32 33 37 41 42 43 45 49 50 51 52
[26] 53 54 57 59 61 62 63 64 65 68 70 72 73 76 80 81 82 83 85 86 92 93 94 95 97
[51] 98
abs(x)
[1] 1.85574909 0.54117884 0.45518286 0.22270690 0.57108907 0.27666158
[7] 0.41737962 0.32542423 0.99543585 0.58250681 2.58399725 0.48327788
[13] 1.51818339 0.55913559 0.20385387 0.30237005 1.76756778 1.75913010
[19] 1.19442452 1.06333094 1.68238090 0.46061773 0.25167509 0.38374751
[25] 1.77391253 0.47200392 2.06245528 0.25415520 0.38475149 0.29951813
[31] 0.63689839 1.21737745 0.66784497 0.28300890 0.53015940 0.90172588
[37] 0.88977916 0.26542640 0.50075054 0.87440431 0.25863208 0.28193896
[43] 0.86484487 1.04268008 0.71038537 0.86695391 0.14066352 0.48631277
[49] 0.03093615 0.20029344 0.69075871 0.13886615 0.94497593 0.93471341
[55] 1.66707572 0.31637381 0.13833978 0.09110898 0.08448024 0.72501472
[61] 0.18990729 0.28831530 0.51306150 0.70779990 1.07960193 1.63857250
[67] 1.62068549 1.50606598 0.61691182 1.76356145 0.78406055 1.67097020
[73] 0.49419582 1.11009853 0.14399290 0.37416729 0.07630757 0.37620167
[79] 0.18043558 0.01103006 1.73299653 1.10352414 0.09230857 0.68936825
[85] 0.57227810 0.30629490 0.04290168 1.78154160 0.53184204 2.37923900
[91] 0.38853313 1.21706843 0.09963849 0.42988531 0.17272274 0.51102030
[97] 0.45067615 0.76971246 0.15956416 0.26473857
floor(x)
[1] 1 0 -1 -1 -1 0 0 -1 -1 -1 2 -1 1 0 0 -1 1 1 -2 -2 -2 0 0 -1 1
[26] 0 2 0 -1 -1 0 -2 -1 0 0 0 -1 0 0 0 -1 -1 -1 1 -1 0 0 0 -1 -1
[51] -1 -1 -1 -1 1 0 -1 0 -1 0 -1 -1 -1 -1 -2 1 1 -2 0 -2 0 -2 -1 1 0
[76] -1 0 0 0 -1 -2 -2 -1 0 -1 -1 0 1 0 2 0 -2 -1 -1 -1 0 -1 -1 0 0
>0] x[x
[1] 1.85574909 0.54117884 0.27666158 0.41737962 2.58399725 1.51818339
[7] 0.55913559 0.20385387 1.76756778 1.75913010 0.46061773 0.25167509
[13] 1.77391253 0.47200392 2.06245528 0.25415520 0.63689839 0.28300890
[19] 0.53015940 0.90172588 0.26542640 0.50075054 0.87440431 1.04268008
[25] 0.86695391 0.14066352 0.48631277 1.66707572 0.31637381 0.09110898
[31] 0.72501472 1.63857250 1.62068549 0.61691182 0.78406055 1.11009853
[37] 0.14399290 0.07630757 0.37620167 0.18043558 0.68936825 0.04290168
[43] 1.78154160 0.53184204 2.37923900 0.38853313 0.51102030 0.15956416
[49] 0.26473857
>0]<-0
x[x x
[1] 0.00000000 0.00000000 -0.45518286 -0.22270690 -0.57108907 0.00000000
[7] 0.00000000 -0.32542423 -0.99543585 -0.58250681 0.00000000 -0.48327788
[13] 0.00000000 0.00000000 0.00000000 -0.30237005 0.00000000 0.00000000
[19] -1.19442452 -1.06333094 -1.68238090 0.00000000 0.00000000 -0.38374751
[25] 0.00000000 0.00000000 0.00000000 0.00000000 -0.38475149 -0.29951813
[31] 0.00000000 -1.21737745 -0.66784497 0.00000000 0.00000000 0.00000000
[37] -0.88977916 0.00000000 0.00000000 0.00000000 -0.25863208 -0.28193896
[43] -0.86484487 0.00000000 -0.71038537 0.00000000 0.00000000 0.00000000
[49] -0.03093615 -0.20029344 -0.69075871 -0.13886615 -0.94497593 -0.93471341
[55] 0.00000000 0.00000000 -0.13833978 0.00000000 -0.08448024 0.00000000
[61] -0.18990729 -0.28831530 -0.51306150 -0.70779990 -1.07960193 0.00000000
[67] 0.00000000 -1.50606598 0.00000000 -1.76356145 0.00000000 -1.67097020
[73] -0.49419582 0.00000000 0.00000000 -0.37416729 0.00000000 0.00000000
[79] 0.00000000 -0.01103006 -1.73299653 -1.10352414 -0.09230857 0.00000000
[85] -0.57227810 -0.30629490 0.00000000 0.00000000 0.00000000 0.00000000
[91] 0.00000000 -1.21706843 -0.09963849 -0.42988531 -0.17272274 0.00000000
[97] -0.45067615 -0.76971246 0.00000000 0.00000000