blabla R
##Commandes de base
3*4 #Retourne le résultat de la mulitplication de 3 par 4 (résultat numérique)
5+3*4
6^2/3/2 #R respecte la priorité des opérations
3>1 #Retourne la valeur booléenne TRUE : 3 est bien plus grand que 1
3>1 & 2>4 #Retourne FALSE : & signifie ET ; or 2 n'est pas plus grand que 4
3>1 | 2>4 #Retourne TRUE : | signifie OU.
x = 3*4 #Assigne le résultat de l'opération 3*4 à l'objet appelé x
y <- 5+3*4
6^2/3/2 -> z
A = 3>1
B <- 3>1 & 2>4
3>1 | 2>4 -> C
x #Affiche dans la console la valeur prise par x
##Les vecteurs
x <- c(0.2, 0.4, 1.3, 7.2) #Création d'un vecteur
x
mode(x) #Retourne le mode des composantes de x
y <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) #Vecteur booléen
z <- c('Philippe', 'Sophie', 'Maxence') #Vecteur de chaînes de caractères
length(x); length(y); length(z)
x[2] #Extrait la deuxième composante du vecteur x
y[5]
z[c(1,2)] # Extrait les composantes 1 et 2
y <- seq(0,10, by=0.1) # Crée un vecteur dont les composantes sont les nombres réels allant de 0 à 10 par pas de 01
y #Affiche y dans la console
1:4 #Crée le vecteur des entiers de 1 à 4
c(x, 1:4) # Concaténe les vecteur x et 1:4
y[c(1,2, 6:8)] #Extrait de y les composantes d'indices 1, 2, 6, 7, 8
x <- c(0.2, 0.4, 1.3, 7.2)
names(x) <- c('A','B','C','D') #Ajoute un nom à chaque composante de x
x #On extrait la composante dénommée B
y <- c(A=2, B=4, C=7, D=1, E=3) #On peut déclarer les nom lors de la création du vecteur
1:4 * 5:8 #Produit terme à term
1:7 * 4:6
(1:4)^2 #Carré de chaque terme du vecteur
cos(seq(0, 2*pi, by=pi/6)) #Le cosinus de chaque angle de la séauence
sum(1:4) #La somme des composantes du vecteur
x <- c(1,0,0,0,1,1,1,0,1,0,0)
cumsum(x) / 1:length(x) #Evolution de la fréquence d'apparition des 1
x <- c(0.2, 0.4, 1.3, 7.2)
V <- x>1
V
!V #Négation de V
x == 1.3 #x vaut-il 1.3 ?
W <- x<2
V|W #Est-ce que V ou W est vrai ? (appliqué terme à terme)
V&W #Est-ce que V et W sont vrais simultanément ? (appliqué terme à terme)
x^2*(V&W)
x[x>1] #Le vecteur des éléments de x supérieus à 1
x <- 1:4
x[6] <- 6
x
##Exercice
#Q1
Notes <- c(9, 20, 12.5,4, 0,15.5, 9.5, 20, 0, 13,
14, 15, 4.5, 7.5, 7.5, 9.5, 0, 0, 12.5,
0, 8, 0, 10.5, 1.5, 7.5, 16, 0)
names(Notes)=c('Martin', 'Bernard', 'Dubois', 'Thomas', 'Robert',
'Richard', 'Petit', 'Durand', 'Leroy', 'Moreau',
'Simon', 'Laurent', 'Lefebvre', 'Michel', 'Garcia',
'David', 'Bertrand', 'Roux', 'Vincent', 'Fournier',
'Morel', 'Girard' , 'Andre', 'Lefevre', 'Mercier',
'Dupont', 'Lambert')
#Q2
Notes
#Q3
Notes[Notes >= 10]
#Q4
Notes <- 17
Notes
#Q5
length(Notes[Notes == 0]) #On extrait le vecteur des 0 et on calcule la longueur
sum(Notes == 0) #Beaucoup plus astucieux (transtypage TRUE = 1, FALSE = 0)
#Q6
names(Notes)[Notes >= 12 & Notes < 14]
##Les matrices
z <- matrix(1:8, nrow = 2, ncol = 4)#La matric est remplie colonne après colonne
z <- matrix(1:8, nrow = 2, ncol = 4, byrow=TRUE) #La matrice est remplie ligne après ligne
dim(z) #Les dimensions de la matrices (vecteur à deux composantes)
nrow(z) #Npmbre de lignes
ncol(z) #Nombres de colonnes
z[2,3] #Element à l'intersection de la 2ime ligne et 3ieme colonne.
z[,1] #Extraction de la premiere colonne
z[1,] #Extraction de la premiere ligne
z[,1:3] #Extraction de la sous matrice formée des 3 premieres colonnes
A <- matrix(1:6, 2,3)
B <- matrix(7:10, 2,2)
cbind(A,B)
C <- matrix(11:19, 3,3)
rbind(A,C)
A <- matrix(c(1,-1,0, 1, 0, 1, 0,1, -1), 3,3)
B <- matrix((10:18),3,3)
A%*%B #Produit matriciel
t(A) #Transposée
det(A) #Déterminant
eigen(A) #Valeurs et vecteurs propres
solve(A,c(1,2,3)) #Résolution du systeme lineaire AX = [1,2,3]
solve(A) #Inversion matricielle
apply(A, 1, sum) #Somme par ligne
apply(A, 2, mean) # Moyenne par colonne
z <- matrix(1:8, nrow = 2, ncol = 4, byrow=TRUE)
rownames(z) <- c("A", "B")
colnames(z) <- c("Henri", 'Jacques', 'Dominique', 'Bertrand')
rownames(z)
colnames(z)
##Exercice
#Q1
ma_matrice <- matrix( c(1.75, 1.68, 1.87, 1.78, 1.72, 1.79, 2.01, 1.83, 78, 56, 87, 98, 55, 73, 89,76),
nrow = 8, ncol =2, byrow = FALSE)
rownames(ma_matrice) <- c('Martin', 'Bernard', 'Thomas', 'Robert',
'Richard', 'Simon', 'Laurent', 'Vincent')
colnames(ma_matrice) <- c('Taille', 'Poids')
ma_matrice
#Q2
ma_matrice
#Q3
ma_matrice[ma_matrice[,'Taille' ] >= 1.74, ]
#Q4
IMC <- ma_matrice[,'Poids'] / ma_matrice[,'Taille']^2
IMC
#Q5
ma_matrice <- cbind(ma_matrice, IMC)
ma_matrice
##Les listes
x <- list(c(3,1), 'Blabla', list(2, 'A', TRUE))
x
x1 #Affiche la première composante de la liste.
x[1] #Extrait la sous-liste contenant la première composante de x
x[c(1,2)] #idem, contient les deux premières composantes
names(x) <- c('A', 'B', 'C')
x$A
x$A[2]
x$C3
lapply(x, class)
lapply(x, mean)
## Les fonctions et leur documentation
mon_vecteur <- c(0.4, 0.7, 1.3, 7.2)
mean(x = mon_vecteur)
mean(x = mon_vecteur, na.rm = FALSE)
mean(mon_vecteur, 0, FALSE)
####Partie 4 - Importer des jeux de données####
dt_pat <- read.table('Ressources/DonneesAdminPatients.csv',
header = TRUE, sep = ';', dec = ',', quote = '\"',
fileEncoding = 'UTF-8')
##Extraction du vecteur Sexe
dt_pat4
dt_pat$Sexe
dt_pat[,4]
dt_pat[1,] #Extraction des infos concernant le patient 1
dt_pat[dt_pat$Sexe == 'Féminin',] #Extraction des données des patientes
dt_pat[dt_pat$Sexe == 'Féminin', c('Pointure', 'Taille')] #Extraction des pointures et tailles des patientes
nrow(dt_pat) #Nombre de patients dans la base
str(dt_pat) #Structure de la base
summary(dt_pat)
subset(dt_pat, dt_pat$Diagnostic=='hyporeflexie vestibulaire bilatérale')
names(dt_pat)[3] <- 'DateNais' #Renommage d'une variable
##Exercice
#Q1
atp_matches_2016 <- read.csv("Ressources/atp_matches_2016.csv",
stringsAsFactors=FALSE)
#Q2
View(atp_matches_2016)
str(atp_matches_2016)
#Q3.a
murray_results_2016 <- atp_matches_2016[atp_matches_2016$winner_name == 'Andy Murray' |
atp_matches_2016$loser_name == 'Andy Murray',]
#Q3.b
nrow(murray_results_2016)
#Q3.c
sum(murray_results_2016$winner_name == 'Andy Murray') #Nombre de victoires
sum(murray_results_2016$loser_name == 'Andy Murray') #Nombre de défaites
#Q3.d
sum(murray_results_2016$winner_name == 'Andy Murray' &
murray_results_2016$round == 'F')
#Q4
atp_matches_2016[atp_matches_2016$tourney_name == 'Roland Garros' &
atp_matches_2016$round == 'F', c('winner_name', 'score')]
#Q5
sum(atp_matches_2016$winner_hand == 'L' & atp_matches_2016$loser_hand == 'L')
#atp_matches_2016[which.max(atp_matches_2016$minutes),
c('tourney_name', 'round', 'minutes', 'winner_name', 'loser_name', 'score')]
## Consulter par exemple http://www.eurosport.fr/tennis/atp-sydney-double/2016/atp-et-wta-sydney-aucun-simple-termine-jeudi-en-raison-de-la-pluie_sto5058953/story.shtml
#Q7
aces_wimbledon <- atp_matches_2016[atp_matches_2016$tourney_name == 'Wimbledon',c('w_ace', 'l_ace')]
sum(apply(aces_wimbledon, 2, sum, na.rm = TRUE))
##Exercice
#Q1:
dt_pat <- read.table('Ressources/DonneesAdminPatients.csv',
header = TRUE, sep = ';', dec = ',', quote = '\"',
fileEncoding = 'UTF-8')
names(dt_pat)
names(dt_pat)[3] <- 'DateNais'
dt_pat$DateNais
(Err <- which(dt_pat$DateNais=='30/12/1899'))
dt_pat$DateNais[Err] <- NA
dt_pat$DateNais
#Q2:
source('Ressources/DateToAge.R') #On exécute le contenu du fichier 'DateToAge.R'
#Q3:
(Age <- DateToAge(dt_pat$DateNais))
AgeD <- cut(Age,
breaks = c(0, 30, 40, 50, 60, 70, 80, Inf),
include.lowest=TRUE, right=FALSE)
table(AgeD)
####Partie 5 - Lois de probabilités####
dbinom(4, size=12, prob=0.3) #P(X=4) où X ~ B(12, 0.3)
pbinom(4, size=12, prob=0.3) #P(X<=4) où X ~ B(12, 0.3)
qbinom(0.5, size=12, prob=0.3) #Solution de P(X<=q) >= 0.5
rbinom(30, size=12, prob=0.3) #Simulations de 30 réalisations indépendantes d'une v.a. de loi B(12, 0.3)
sample(c(0,1), size=20, replace=TRUE) #20 lancers de pile ou face avec pièce équilibrée
sample(c(0,1), size=20, replace=TRUE, prob=c(0.3, 0.7)) #Idem avec pièce truquée
sample(1:6, size=10, replace=TRUE) #10 lancers d'un dé équilibré
sample(1:6, size=10, replace=TRUE, prob=c(1/8, 1/8, 1/4, 1/8, 1/8, 1/4)) #Idem dé truqué
sample(1:6, size=6, replace=FALSE) #Permutation aléatoire de 1 2 3 4 5 6
##Exercice
#Q1 :
sum(dbinom(3:5, size=10, prob=0.5))
pbinom(5, size=10, prob=0.5)-pbinom(2, size=10, prob=0.5)
#Q2:
qnorm(0.975)
##Exercice
#Q1 :
sample(1:49, size=6, replace=FALSE)
#Q2:
rexp(50, rate=0.01)
####Partie 7 - Fonctions graphiques ####
#Représentation d'un nuage de points
plot(x = 1:10, y = (1:10)^2)
plot(x = 1:10, y = (1:10)^2, type = 'l')
#Représentation d'une fonction
plot(cos, xlim = c(0, 2*pi))
plot(Taille ~ Pointure, data = dt_pat)
plot(Taille ~ Sexe, data = dt_pat)
postscript(file = 'TP0Graphe.ps')
plot(x = 0:10, y = (0:10)^2, type = 'l',
col = 'red', lwd = 2, lty = 2,
ylim = c(0,100), xlim = c(0,10),
bg = 'yellow',
main = 'Représentation de la fonction carré',
xlab = 'x',
ylab = expression(x^2),
cex = 1.4)
abline(a = -25, b = 10,
col = 4)
legend('topleft',
legend = c('Courbe', 'Tangente'),
col = c(2,4), lty = c(2,1), lwd = c(2,1))
dev.off()
3*4 #Retourne le résultat de la mulitplication de 3 par 4 (résultat numérique)
5+3*4
6^2/3/2 #R respecte la priorité des opérations
3>1 #Retourne la valeur booléenne TRUE : 3 est bien plus grand que 1
3>1 & 2>4 #Retourne FALSE : & signifie ET ; or 2 n'est pas plus grand que 4
3>1 | 2>4 #Retourne TRUE : | signifie OU.
x = 3*4 #Assigne le résultat de l'opération 3*4 à l'objet appelé x
y <- 5+3*4
6^2/3/2 -> z
A = 3>1
B <- 3>1 & 2>4
3>1 | 2>4 -> C
x #Affiche dans la console la valeur prise par x
##Les vecteurs
x <- c(0.2, 0.4, 1.3, 7.2) #Création d'un vecteur
x
mode(x) #Retourne le mode des composantes de x
y <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) #Vecteur booléen
z <- c('Philippe', 'Sophie', 'Maxence') #Vecteur de chaînes de caractères
length(x); length(y); length(z)
x[2] #Extrait la deuxième composante du vecteur x
y[5]
z[c(1,2)] # Extrait les composantes 1 et 2
y <- seq(0,10, by=0.1) # Crée un vecteur dont les composantes sont les nombres réels allant de 0 à 10 par pas de 01
y #Affiche y dans la console
1:4 #Crée le vecteur des entiers de 1 à 4
c(x, 1:4) # Concaténe les vecteur x et 1:4
y[c(1,2, 6:8)] #Extrait de y les composantes d'indices 1, 2, 6, 7, 8
x <- c(0.2, 0.4, 1.3, 7.2)
names(x) <- c('A','B','C','D') #Ajoute un nom à chaque composante de x
x #On extrait la composante dénommée B
y <- c(A=2, B=4, C=7, D=1, E=3) #On peut déclarer les nom lors de la création du vecteur
1:4 * 5:8 #Produit terme à term
1:7 * 4:6
(1:4)^2 #Carré de chaque terme du vecteur
cos(seq(0, 2*pi, by=pi/6)) #Le cosinus de chaque angle de la séauence
sum(1:4) #La somme des composantes du vecteur
x <- c(1,0,0,0,1,1,1,0,1,0,0)
cumsum(x) / 1:length(x) #Evolution de la fréquence d'apparition des 1
x <- c(0.2, 0.4, 1.3, 7.2)
V <- x>1
V
!V #Négation de V
x == 1.3 #x vaut-il 1.3 ?
W <- x<2
V|W #Est-ce que V ou W est vrai ? (appliqué terme à terme)
V&W #Est-ce que V et W sont vrais simultanément ? (appliqué terme à terme)
x^2*(V&W)
x[x>1] #Le vecteur des éléments de x supérieus à 1
x <- 1:4
x[6] <- 6
x
##Exercice
#Q1
Notes <- c(9, 20, 12.5,4, 0,15.5, 9.5, 20, 0, 13,
14, 15, 4.5, 7.5, 7.5, 9.5, 0, 0, 12.5,
0, 8, 0, 10.5, 1.5, 7.5, 16, 0)
names(Notes)=c('Martin', 'Bernard', 'Dubois', 'Thomas', 'Robert',
'Richard', 'Petit', 'Durand', 'Leroy', 'Moreau',
'Simon', 'Laurent', 'Lefebvre', 'Michel', 'Garcia',
'David', 'Bertrand', 'Roux', 'Vincent', 'Fournier',
'Morel', 'Girard' , 'Andre', 'Lefevre', 'Mercier',
'Dupont', 'Lambert')
#Q2
Notes
#Q3
Notes[Notes >= 10]
#Q4
Notes <- 17
Notes
#Q5
length(Notes[Notes == 0]) #On extrait le vecteur des 0 et on calcule la longueur
sum(Notes == 0) #Beaucoup plus astucieux (transtypage TRUE = 1, FALSE = 0)
#Q6
names(Notes)[Notes >= 12 & Notes < 14]
##Les matrices
z <- matrix(1:8, nrow = 2, ncol = 4)#La matric est remplie colonne après colonne
z <- matrix(1:8, nrow = 2, ncol = 4, byrow=TRUE) #La matrice est remplie ligne après ligne
dim(z) #Les dimensions de la matrices (vecteur à deux composantes)
nrow(z) #Npmbre de lignes
ncol(z) #Nombres de colonnes
z[2,3] #Element à l'intersection de la 2ime ligne et 3ieme colonne.
z[,1] #Extraction de la premiere colonne
z[1,] #Extraction de la premiere ligne
z[,1:3] #Extraction de la sous matrice formée des 3 premieres colonnes
A <- matrix(1:6, 2,3)
B <- matrix(7:10, 2,2)
cbind(A,B)
C <- matrix(11:19, 3,3)
rbind(A,C)
A <- matrix(c(1,-1,0, 1, 0, 1, 0,1, -1), 3,3)
B <- matrix((10:18),3,3)
A%*%B #Produit matriciel
t(A) #Transposée
det(A) #Déterminant
eigen(A) #Valeurs et vecteurs propres
solve(A,c(1,2,3)) #Résolution du systeme lineaire AX = [1,2,3]
solve(A) #Inversion matricielle
apply(A, 1, sum) #Somme par ligne
apply(A, 2, mean) # Moyenne par colonne
z <- matrix(1:8, nrow = 2, ncol = 4, byrow=TRUE)
rownames(z) <- c("A", "B")
colnames(z) <- c("Henri", 'Jacques', 'Dominique', 'Bertrand')
rownames(z)
colnames(z)
##Exercice
#Q1
ma_matrice <- matrix( c(1.75, 1.68, 1.87, 1.78, 1.72, 1.79, 2.01, 1.83, 78, 56, 87, 98, 55, 73, 89,76),
nrow = 8, ncol =2, byrow = FALSE)
rownames(ma_matrice) <- c('Martin', 'Bernard', 'Thomas', 'Robert',
'Richard', 'Simon', 'Laurent', 'Vincent')
colnames(ma_matrice) <- c('Taille', 'Poids')
ma_matrice
#Q2
ma_matrice
#Q3
ma_matrice[ma_matrice[,'Taille' ] >= 1.74, ]
#Q4
IMC <- ma_matrice[,'Poids'] / ma_matrice[,'Taille']^2
IMC
#Q5
ma_matrice <- cbind(ma_matrice, IMC)
ma_matrice
##Les listes
x <- list(c(3,1), 'Blabla', list(2, 'A', TRUE))
x
x1 #Affiche la première composante de la liste.
x[1] #Extrait la sous-liste contenant la première composante de x
x[c(1,2)] #idem, contient les deux premières composantes
names(x) <- c('A', 'B', 'C')
x$A
x$A[2]
x$C3
lapply(x, class)
lapply(x, mean)
## Les fonctions et leur documentation
mon_vecteur <- c(0.4, 0.7, 1.3, 7.2)
mean(x = mon_vecteur)
mean(x = mon_vecteur, na.rm = FALSE)
mean(mon_vecteur, 0, FALSE)
####Partie 4 - Importer des jeux de données####
dt_pat <- read.table('Ressources/DonneesAdminPatients.csv',
header = TRUE, sep = ';', dec = ',', quote = '\"',
fileEncoding = 'UTF-8')
##Extraction du vecteur Sexe
dt_pat4
dt_pat$Sexe
dt_pat[,4]
dt_pat[1,] #Extraction des infos concernant le patient 1
dt_pat[dt_pat$Sexe == 'Féminin',] #Extraction des données des patientes
dt_pat[dt_pat$Sexe == 'Féminin', c('Pointure', 'Taille')] #Extraction des pointures et tailles des patientes
nrow(dt_pat) #Nombre de patients dans la base
str(dt_pat) #Structure de la base
summary(dt_pat)
subset(dt_pat, dt_pat$Diagnostic=='hyporeflexie vestibulaire bilatérale')
names(dt_pat)[3] <- 'DateNais' #Renommage d'une variable
##Exercice
#Q1
atp_matches_2016 <- read.csv("Ressources/atp_matches_2016.csv",
stringsAsFactors=FALSE)
#Q2
View(atp_matches_2016)
str(atp_matches_2016)
#Q3.a
murray_results_2016 <- atp_matches_2016[atp_matches_2016$winner_name == 'Andy Murray' |
atp_matches_2016$loser_name == 'Andy Murray',]
#Q3.b
nrow(murray_results_2016)
#Q3.c
sum(murray_results_2016$winner_name == 'Andy Murray') #Nombre de victoires
sum(murray_results_2016$loser_name == 'Andy Murray') #Nombre de défaites
#Q3.d
sum(murray_results_2016$winner_name == 'Andy Murray' &
murray_results_2016$round == 'F')
#Q4
atp_matches_2016[atp_matches_2016$tourney_name == 'Roland Garros' &
atp_matches_2016$round == 'F', c('winner_name', 'score')]
#Q5
sum(atp_matches_2016$winner_hand == 'L' & atp_matches_2016$loser_hand == 'L')
#atp_matches_2016[which.max(atp_matches_2016$minutes),
c('tourney_name', 'round', 'minutes', 'winner_name', 'loser_name', 'score')]
## Consulter par exemple http://www.eurosport.fr/tennis/atp-sydney-double/2016/atp-et-wta-sydney-aucun-simple-termine-jeudi-en-raison-de-la-pluie_sto5058953/story.shtml
#Q7
aces_wimbledon <- atp_matches_2016[atp_matches_2016$tourney_name == 'Wimbledon',c('w_ace', 'l_ace')]
sum(apply(aces_wimbledon, 2, sum, na.rm = TRUE))
##Exercice
#Q1:
dt_pat <- read.table('Ressources/DonneesAdminPatients.csv',
header = TRUE, sep = ';', dec = ',', quote = '\"',
fileEncoding = 'UTF-8')
names(dt_pat)
names(dt_pat)[3] <- 'DateNais'
dt_pat$DateNais
(Err <- which(dt_pat$DateNais=='30/12/1899'))
dt_pat$DateNais[Err] <- NA
dt_pat$DateNais
#Q2:
source('Ressources/DateToAge.R') #On exécute le contenu du fichier 'DateToAge.R'
#Q3:
(Age <- DateToAge(dt_pat$DateNais))
AgeD <- cut(Age,
breaks = c(0, 30, 40, 50, 60, 70, 80, Inf),
include.lowest=TRUE, right=FALSE)
table(AgeD)
####Partie 5 - Lois de probabilités####
dbinom(4, size=12, prob=0.3) #P(X=4) où X ~ B(12, 0.3)
pbinom(4, size=12, prob=0.3) #P(X<=4) où X ~ B(12, 0.3)
qbinom(0.5, size=12, prob=0.3) #Solution de P(X<=q) >= 0.5
rbinom(30, size=12, prob=0.3) #Simulations de 30 réalisations indépendantes d'une v.a. de loi B(12, 0.3)
sample(c(0,1), size=20, replace=TRUE) #20 lancers de pile ou face avec pièce équilibrée
sample(c(0,1), size=20, replace=TRUE, prob=c(0.3, 0.7)) #Idem avec pièce truquée
sample(1:6, size=10, replace=TRUE) #10 lancers d'un dé équilibré
sample(1:6, size=10, replace=TRUE, prob=c(1/8, 1/8, 1/4, 1/8, 1/8, 1/4)) #Idem dé truqué
sample(1:6, size=6, replace=FALSE) #Permutation aléatoire de 1 2 3 4 5 6
##Exercice
#Q1 :
sum(dbinom(3:5, size=10, prob=0.5))
pbinom(5, size=10, prob=0.5)-pbinom(2, size=10, prob=0.5)
#Q2:
qnorm(0.975)
##Exercice
#Q1 :
sample(1:49, size=6, replace=FALSE)
#Q2:
rexp(50, rate=0.01)
####Partie 7 - Fonctions graphiques ####
#Représentation d'un nuage de points
plot(x = 1:10, y = (1:10)^2)
plot(x = 1:10, y = (1:10)^2, type = 'l')
#Représentation d'une fonction
plot(cos, xlim = c(0, 2*pi))
plot(Taille ~ Pointure, data = dt_pat)
plot(Taille ~ Sexe, data = dt_pat)
postscript(file = 'TP0Graphe.ps')
plot(x = 0:10, y = (0:10)^2, type = 'l',
col = 'red', lwd = 2, lty = 2,
ylim = c(0,100), xlim = c(0,10),
bg = 'yellow',
main = 'Représentation de la fonction carré',
xlab = 'x',
ylab = expression(x^2),
cex = 1.4)
abline(a = -25, b = 10,
col = 4)
legend('topleft',
legend = c('Courbe', 'Tangente'),
col = c(2,4), lty = c(2,1), lwd = c(2,1))
dev.off()
Cette discussion a été fermée.
Réponses
C'est la Révolution EXTRATERRESTRE ? Fin de la Terreur intergalactique et chute de Robespierre génétiquement modifié ? Et Napo dans tout ça ?
Ce message n'est pas commenté et les premières réaction sont extrêmement ironiques. Je ferme le sujet en attendant que tu développes.
Bruno