Vous êtes sur la page 1sur 17

January 15, 2019

The results below are generated from an R script.

######### EX 4 Série 2 2018-19 #########################""

#etu=read.csv2("etudiants.csv",row.names=1)

etu <-read.csv2(file.choose(),row.names=1)
head(etu)

## MATH STAT ARABE ANGLAIS


## Mohamed 6.0 6.0 5.0 5.5
## Ali 8.0 8.0 8.0 8.0
## Ilyas 6.0 7.0 11.0 9.5
## Anas 14.5 14.5 15.5 15.0
## Soumaya 14.0 14.0 12.0 12.5
## Houda 11.0 10.0 5.5 7.0

summary(etu)

## MATH STAT ARABE ANGLAIS


## Min. : 5.500 Min. : 6.000 Min. : 5.00 Min. : 5.50
## 1st Qu.: 6.000 1st Qu.: 7.000 1st Qu.: 8.00 1st Qu.: 8.00
## Median : 9.000 Median : 9.500 Median :11.00 Median : 9.50
## Mean : 9.667 Mean : 9.833 Mean :10.22 Mean :10.06
## 3rd Qu.:13.000 3rd Qu.:12.500 3rd Qu.:12.50 3rd Qu.:12.00
## Max. :14.500 Max. :14.500 Max. :15.50 Max. :15.00

boxplot(etu,col=2:5);axis(side=1,at=1:4,labels=c("MATH","STAT","ARABE","ANGLAIS"),col.axis="magenta")

1
14

12

10

MATH STAT ARABE ANGLAIS

round(cor(etu),3) #pertinence de l'ACP


## MATH STAT ARABE ANGLAIS
## MATH 1.000 0.983 0.227 0.508
## STAT 0.983 1.000 0.397 0.652
## ARABE 0.227 0.397 1.000 0.951
## ANGLAIS 0.508 0.652 0.951 1.000
require(FactoMineR)
res=PCA(etu)

########## Combien d'axes doit-on retenir : méthode de Kaiser ###########

i0 <- which(res$eig[,1]>=1) # les nř des axes dont les val-proprs>=1


lambda <- data.frame(res$eig[i0,1]) # réecrire comme data.frame pour pouvoir ajouter les noms (lignes et
row.names(lambda)<- row.names(res$eig)[i0] # ajout noms des lignes (les components)
names(lambda) <- "Les axes retenus sont" # ajout nom de la colonne
lambda # Il y a une autre méthode (voir plus loin): méthode de l'ebouli des valeurs propres ( tuyaux d'o
## Les axes retenus sont
## comp 1 2.875687
## comp 2 1.119687
require(LeLogicielR)
x11()
barplot(res$eig[,1],col="blue",axes=FALSE,ylim=c(0,3))
axis(side=2,las=2,at=round(res$eig[,1],1),labels=TRUE,col.axis=2)
fleches()
abline(h=1,lty=2,lwd=2,col=2)
M <- locator(4)
text(M$x,M$y,paste(round(res$eig[,1],1)),cex=1.3,srt=45,col=3)

2
2.9

9
2.

1
1.
1.1

0
0.0
comp 1 comp 2 comp 3 comp 4

#Q-7
lambda <-diag(res$svd$vs[c(1,3)])
v1324=t(res$svd$V[c(2,4),c(1,3)])
round(lambda%*%v1324,2)

## [,1] [,2]
## [1,] 0.90 0.91
## [2,] 0.03 -0.04

plot(res,axes=c(1,3),choix="var",col.var=c("white",3,"white",2))

3
Variables factor map (PCA)

1.0
0.5
Dim 3 (0.089%)

ARABE STAT
0.0

● MATH
ANGLAIS
−0.5
−1.0

−1.0 −0.5 0.0 0.5 1.0

Dim 1 (71.89%)

# Q8
round(sum(res$eig[c(1,3),2]),1)

## [1] 72

#Q10
round(apply(res$ind$cos2[,1:2],1,sum),2)

## Mohamed Ali Ilyas Anas Soumaya Houda Yassmine Firdaous Sara


## 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.98

res$ind$cos2

## Dim.1 Dim.2 Dim.3 Dim.4


## Mohamed 0.9761627 0.02370208 6.881416e-05 6.637524e-05
## Ali 0.9847410 0.01492971 1.231142e-05 3.169966e-04
## Ilyas 0.4903855 0.50804096 1.567819e-03 5.766733e-06
## Anas 0.9962742 0.00348560 1.317002e-05 2.270387e-04
## Soumaya 0.9135338 0.08555789 1.307660e-04 7.775845e-04
## Houda 0.2957329 0.70348268 2.147825e-04 5.695980e-04
## Yassmine 0.0289634 0.97022686 7.876200e-04 2.212623e-05
## Firdaous 0.1871131 0.81067773 2.134441e-03 7.469940e-05
## Sara 0.2714009 0.70782185 2.022097e-02 5.562313e-04

# Ce qui veut dire que tous les étudiants sont dans le plan (F1,F2)
# sauf sara (très proche)

#Q11
plot(res,choix="var",col.var=c(2,3,4,12),cex=.6) # cercle de corrélation en couleur

4
Variables factor map (PCA)

1.0
ARABE

0.5
ANGLAIS
Dim 2 (27.99%)

0.0


−0.5

STAT

MATH
−1.0

−1.0 −0.5 0.0 0.5 1.0

Dim 1 (71.89%)

# Remarque : Voir cercle de corrélation => Effet de taille :


res$var$cor

## Dim.1 Dim.2 Dim.3 Dim.4


## MATH 0.8113552 -0.5840463 -0.01211650 0.02111716
## STAT 0.9020171 -0.4304585 0.02638963 -0.01934287
## ARABE 0.7528105 0.6573601 0.03184489 0.01183144
## ANGLAIS 0.9148940 0.4014480 -0.04147615 -0.00939206

############# Remarque d'un effet de Taille ##################

MG <- apply(etu,1,mean)
sexe <- c("H","H","H","H","F","F","F","F","F")
(etud1<-cbind(etu,MG,sexe))

## MATH STAT ARABE ANGLAIS MG sexe


## Mohamed 6.0 6.0 5.0 5.5 5.625 H
## Ali 8.0 8.0 8.0 8.0 8.000 H
## Ilyas 6.0 7.0 11.0 9.5 8.375 H
## Anas 14.5 14.5 15.5 15.0 14.875 H
## Soumaya 14.0 14.0 12.0 12.5 13.125 F
## Houda 11.0 10.0 5.5 7.0 8.375 F
## Yassmine 5.5 7.0 14.0 11.5 9.500 F
## Firdaous 13.0 12.5 8.5 9.5 10.875 F
## Sara 9.0 9.5 12.5 12.0 10.750 F

res3=PCA(etud1,quanti.sup=5,quali.sup=6)
summary(res3)

##
## Call:

5
## PCA(X = etud1, quanti.sup = 5, quali.sup = 6)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4
## Variance 2.876 1.120 0.004 0.001
## % of var. 71.892 27.992 0.089 0.026
## Cumulative % of var. 71.892 99.884 99.974 100.000
##
## Individuals
## Dist Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## Mohamed | 2.776 | -2.743 29.068 0.976 | -0.427 1.813 0.024 | -0.023 1.647 0.000 |
## Ali | 1.250 | -1.241 5.947 0.985 | -0.153 0.232 0.015 | -0.004 0.060 0.000 |
## Ilyas | 1.472 | -1.031 4.106 0.490 | 1.049 10.926 0.508 | 0.058 10.552 0.002 |
## Anas | 3.144 | 3.138 38.050 0.996 | 0.186 0.342 0.003 | -0.011 0.404 0.000 |
## Soumaya | 2.146 | 2.051 16.261 0.914 | -0.628 3.911 0.086 | 0.025 1.871 0.000 |
## Houda | 1.785 | -0.971 3.643 0.296 | -1.498 22.254 0.703 | -0.026 2.126 0.000 |
## Yassmine | 1.967 | -0.335 0.433 0.029 | 1.937 37.248 0.970 | 0.055 9.464 0.001 |
## Firdaous | 1.434 | 0.620 1.486 0.187 | -1.291 16.536 0.811 | 0.066 13.626 0.002 |
## Sara | 0.979 | 0.510 1.006 0.271 | 0.824 6.739 0.708 | -0.139 60.249 0.020 |
##
## Variables
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## MATH | 0.811 22.892 0.658 | -0.584 30.465 0.341 | -0.012 4.104 0.000 |
## STAT | 0.902 28.294 0.814 | -0.430 16.549 0.185 | 0.026 19.466 0.001 |
## ARABE | 0.753 19.707 0.567 | 0.657 38.593 0.432 | 0.032 28.346 0.001 |
## ANGLAIS | 0.915 29.107 0.837 | 0.401 14.393 0.161 | -0.041 48.085 0.002 |
##
## Supplementary continuous variable
## Dim.1 cos2 Dim.2 cos2 Dim.3 cos2
## MG | 1.000 1.000 | 0.014 0.000 | 0.003 0.000 |
##
## Supplementary categories
## Dist Dim.1 cos2 v.test Dim.2 cos2 v.test Dim.3 cos2 v.test
## F | 0.398 | 0.375 0.891 0.700 | -0.131 0.108 -0.391 | -0.004 0.000 -0.206 |
## H | 0.497 | -0.469 0.891 -0.700 | 0.164 0.108 0.391 | 0.005 0.000 0.206 |

x11() # crée une fenêtre vide : pour ne pas écraser un graphique par un autre.

plot(res3,choix="ind",habillage=6)

6
Individuals factor map (PCA)

F
H

3
Yassmine

2

Ilyas●
Dim 2 (27.99%)

1 Sara

H Anas

● F
0

Mohamed Ali●


Soumaya
−1


● Firdaous
Houda
−2
−3

−3 −2 −1 0 1 2 3 4

Dim 1 (71.89%)

plotellipses(res3,6)# On remarque que les ellipses se chevauchent,

Confidence ellipses around the categories of sexe

F
H
3

Yassmine
2

Ilyas●
Dim 2 (27.99%)

Sara
1

H ● Anas
● F
0

Ali●

Mohamed ●
Soumaya
−1


● Firdaous
Houda
−2
−3

−4 −2 0 2 4

Dim 1 (71.89%)

# ce qui veut dire les résultats des garçons et des filles ne sont pas
# significativements différents (au vu des 4 matières) ou / à la moyenne générale.

7
plot(res3,choix="var",col.var=c(2,3,4,12,6),cex=.8) # cercle de corrélation en couleur

Variables factor map (PCA)

1.0
ARABE

0.5 ANGLAIS
Dim 2 (27.99%)

0.0

● MG
−0.5

STAT

MATH
−1.0

−1.0 −0.5 0.0 0.5 1.0

Dim 1 (71.89%)

dimdesc(res3, axes = 1:2) # même chose que Cercle-Corrélation mais avec la significativité
## $Dim.1
## $Dim.1$quanti
## correlation p.value
## MG 0.9998870 5.045635e-14
## ANGLAIS 0.9148940 5.443832e-04
## STAT 0.9020171 8.799312e-04
## MATH 0.8113552 7.940276e-03
## ARABE 0.7528105 1.922596e-02
# et très utile lorsque p est très grand
dimdesc(res3, axes = 1:2,prob=.1)# Pour visualiser la structure des notes
## $Dim.1
## $Dim.1$quanti
## correlation p.value
## MG 0.9998870 5.045635e-14
## ANGLAIS 0.9148940 5.443832e-04
## STAT 0.9020171 8.799312e-04
## MATH 0.8113552 7.940276e-03
## ARABE 0.7528105 1.922596e-02
##
##
## $Dim.2
## $Dim.2$quanti
## correlation p.value
## ARABE 0.6573601 0.05435131
## MATH -0.5840463 0.09867318

8
x11()
plot(res3,choix="ind",select="contrib 7") # les 7 premiers contributifs au 1er plan

Individuals factor map (PCA)

3
Yassmine
2

Ilyas●
Dim 2 (27.99%)

H Anas

● F
0


Mohamed ●
Soumaya
−1


● Firdaous
Houda
−2
−3

−3 −2 −1 0 1 2 3 4

Dim 1 (71.89%)

x11()
require(LeLogicielR)
sort(res3$ind$cos2[,1]+res3$ind$cos2[,2],decreasing=TRUE)->cosi
barplot(cosi,col= "skyblue2",las=2)
fleches()
abline(h=mean(cosi),col="red",lty=2,lwd=2)

9
0.8

0.6

0.4

0.2

0.0
Mohamed

Anas

Ali

Yassmine

Soumaya

Ilyas

Sara
Firdaous
Houda

x11()
plot(res3,select="cos2 .98") # ceux qui ont QR >= 95%

Individuals factor map (PCA)


3

Yassmine
2

Ilyas●
Dim 2 (27.99%)

H Anas

● F
0


Mohamed Ali

Soumaya
−1


● Firdaous
Houda
−2
−3

−3 −2 −1 0 1 2 3 4

Dim 1 (71.89%)

10
res3$eig # les valeurs et vecteurs propres et le cumul...

## eigenvalue percentage of variance cumulative percentage of variance


## comp 1 2.875686772 71.89216929 71.89217
## comp 2 1.119687364 27.99218409 99.88435
## comp 3 0.003577590 0.08943975 99.97379
## comp 4 0.001048275 0.02620687 100.00000

res3$eig[,1] # les valeurs propres

## comp 1 comp 2 comp 3 comp 4


## 2.875686772 1.119687364 0.003577590 0.001048275

########### les individus qui contribuent plus que la moyenne (1/n) sur l'axe 1 #############
n <- 9
contribution <- data.frame(res3$ind$contrib[which(res3$ind$contrib[,1]>=100/n),1])
row.names(contribution )<-row.names(res3$ind$contrib)[which(res3$ind$contrib[,1]>=100/n)]
names(contribution )<- " les individus qui contribuent plus que la moyenne sur axe 1"
contribution

## les individus qui contribuent plus que la moyenne sur axe 1


## Mohamed 29.06785
## Anas 38.05024
## Soumaya 16.26097

seuil=1/n*100
i=which(res3$ind$contrib[,1]>=seuil)
dd <-row.names(data.frame(sort(res3$ind$contrib[i,1],decreasing=TRUE)))
dd

## [1] "Anas" "Mohamed" "Soumaya"

res3$ind$contrib[dd,1]->con
s=cbind(sign(res3$ind$coord[dd,1]),con)
s=data.frame(s);s

## V1 con
## Anas 1 38.05024
## Mohamed -1 29.06785
## Soumaya 1 16.26097

s1=s[sign(s[,1])==-1,]
names(s)<-names(s1)<-c("sign","contr");s

## sign contr
## Anas 1 38.05024
## Mohamed -1 29.06785
## Soumaya 1 16.26097

ss=rbind(s[sign(s[,1])==1,],s1)
ss

## sign contr
## Anas 1 38.05024
## Soumaya 1 16.26097
## Mohamed -1 29.06785

11
############# Un résumé de Quatre Graphiques #######################

x11()
op <- par(mfrow = c(2, 2),bg="lightyellow")

plot(res3,choix="ind",sub="ACP 1 2")

sort(res3$ind$contrib[,1],decreasing=TRUE)-> cont
barplot(cont,col= "skyblue2",las=2,main="contrib a Dim 1")
abline(h=mean(cont),col="red",lty=2)
fleches()

sort(res3$ind$contrib[,2],decreasing=TRUE)->cont
barplot(cont,col="lightblue",las=2,main="contrib a Dim 2")
abline(h=mean(cont),col="red",lty=2)
fleches()

plot(res3,select="cos2 .98",sub="cos2 sur Dim 1-2")

Individuals factor map (PCA) contrib a Dim 1


3

35
Yassmine
2
Dim 2 (27.99%)


30
Ilyas● 25
Sara
1

H Anas● 20
●F
0


Ali●
15
Mohamed Soumaya●

10
Houda

Firdaous 5
−2

0
Anas
Mohamed
Soumaya
Ali
Ilyas

Sara
Yassmine
−3 −1 0 1 2 3 4
Firdaous
Houda

Dim 1 (71.89%)
ACP 1 2

contrib a Dim 2 Individuals factor map (PCA)


3

35
30 Yassmine
2
Dim 2 (27.99%)

25 Ilyas●
1

20 H
●F

Ali
0

15 ● Anas
Mohamed Soumaya●

10 ●

5 Houda

Firdaous
−2

0
Yassmine

Ilyas
Sara
Soumaya
Mohamed
Anas
Ali

−3 −1 0 1 2 3 4
Firdaous
Houda

Dim 1 (71.89%)
cos2 sur Dim 1−2

par(op)

############# INterprétation ######################

#La dimension 1 oppose des individus tels que Anas, Soumaya et Firdaous (à droite du graphe,
#caractérisés par une
#coordonnée fortement positive sur lŠaxe) à des individus comme Mohamed et Houda (à gauche du graphe, ca

12
#par une coordonnée fortement négative sur lŠaxe).

#Le groupe auquel les individus Anas, Soumaya et Firdaous appartiennent


#(caractérisés par une coordonnée positive sur lŠaxe) partage :

# de fortes valeurs pour les variables STAT et MATH (de la plus extrême à la moins extrême).

#Le groupe auquel les individus Mohamed et Houda appartiennent


#(caractérisés par une coordonnées négative sur lŠaxe) partage :
# de faibles valeurs pour les variables ARABE et ANGLAIS (de la plus extrême à la moins extrême).

#La dimension 2 distingue particulièrement des individus tels que Yassmine et Ilyas
#(en haut du graphe, caractérisés par une coordonnées fortement positive sur lŠaxe).

#Ces individus forment un groupe partageant :


# - des variables dont les valeurs ne diffèrent pas significativement de la moyenne.

######### Classification hierarchique des individus ################

HCPC(res3,nb.clust=-1) #nb.clust=-1 ==> choix auto du nb de clusters

## **Results for the Hierarchical Clustering on Principal Components**


## name description
## 1 "$data.clust" "dataset with the cluster of the individuals"
## 2 "$desc.var" "description of the clusters by the variables"
## 3 "$desc.var$quanti.var" "description of the cluster var. by the continuous var."
## 4 "$desc.var$quanti" "description of the clusters by the continuous var."
## 5 "$desc.axes" "description of the clusters by the dimensions"
## 6 "$desc.axes$quanti.var" "description of the cluster var. by the axes"
## 7 "$desc.axes$quanti" "description of the clusters by the axes"
## 8 "$desc.ind" "description of the clusters by the individuals"
## 9 "$desc.ind$para" "parangons of each clusters"
## 10 "$desc.ind$dist" "specific individuals"
## 11 "$call" "summary statistics"
## 12 "$call$t" "description of the tree"

hc <- HCPC(res3,nb.clust=-1,prob=.06)
hc$desc.var

##
## Link between the cluster variable and the quantitative variables
## ================================================================
## Eta2 P-value
## STAT 0.8219462 0.005644870
## MATH 0.7951220 0.008599759
## MG 0.7588715 0.014019931
## ANGLAIS 0.6934477 0.028808031
## ARABE 0.6852610 0.031178245
##
## Description of each cluster by quantitative variables
## =====================================================

13
## $`1`
## v.test Mean in category Overall mean sd in category Overall sd p.value
## MG -1.965974 7.333333 9.944444 1.217637 2.656302 0.04930156
## ANGLAIS -2.290862 6.833333 10.055556 1.027402 2.813109 0.02197138
## ARABE -2.335477 6.166667 10.222222 1.312335 3.473000 0.01951852
##
## $`2`
## NULL
##
## $`3`
## v.test Mean in category Overall mean sd in category Overall sd p.value
## STAT 2.563480 13.66667 9.833333 0.8498366 2.990726 0.01036287
## MATH 2.469324 13.83333 9.666667 0.6236096 3.374743 0.01353686
## MG 2.269236 12.95833 9.944444 1.6372402 2.656302 0.02325395

hc$desc.ind

## $para
## Cluster: 1
## Ali Houda Mohamed
## 0.6785368 1.0544917 1.1237207
## -------------------------------------------------------------------
## Cluster: 2
## Yassmine Ilyas Sara
## 0.6722120 0.7806902 0.9214766
## -------------------------------------------------------------------
## Cluster: 3
## Soumaya Anas Firdaous
## 0.1355416 1.4250856 1.4977280
##
## $dist
## Cluster: 1
## Mohamed Houda Ali
## 2.987107 2.851931 1.714283
## -------------------------------------------------------------------
## Cluster: 2
## Yassmine Sara Ilyas
## 2.942089 2.006734 1.850741
## -------------------------------------------------------------------
## Cluster: 3
## Anas Soumaya Firdaous
## 3.591368 3.011039 2.350776

x11()
plot(hc,choice="map", draw.tree=FALSE)

14
Factor map

cluster 1
cluster 2

3
cluster 3

Yassmine

2

cluster 2
Ilyas
Dim 2 (27.99%)

1 Sara

Anas

0


Ali ●


Mohamed cluster 3

cluster 1 Soumaya
−1

● Firdaous
Houda
−2
−3

−3 −2 −1 0 1 2 3 4

Dim 1 (71.89%)

x11()
plot(hc, choice="3D.map", angle=60)

Hierarchical clustering on the factor map

cluster 1
cluster 2
cluster 3
2.5
2.0

Dim 2 (27.99%)
1.5
height

● 2.0
Yassmine 1.5
1.0



1.0
Ilyas
Sara 0.5

0.0
0.5

● Anas

Ali ●
−0.5
Mohamed
Soumaya −1.0

0.0


Firdaous −1.5
−3 −2 Houda
−1 0 1 2 3 4

Dim 1 (71.89%)

15
#Description of each cluster by quantitative variables
#=====================================================
#$`1`
# v.test Mean in category Overall mean sd in category Overall sd
#ANGLAIS -2.290862 6.833333 10.05556 1.027402 2.813109
#ARABE -2.335477 6.166667 10.22222 1.312335 3.473000
# p.value
#ANGLAIS 0.02197138
#ARABE 0.01951852

#$`2`
#NULL

#$`3`
# v.test Mean in category Overall mean sd in category Overall sd
#STAT 2.563480 13.66667 9.833333 0.8498366 2.990726
#MATH 2.469324 13.83333 9.666667 0.6236096 3.374743
# p.value
#STAT 0.01036287
#MATH 0.01353686

#La classe 1 est composée dŠindividus tels que Mohamed et Houda . Ce groupe est caractérisé par :

# de faibles valeurs pour les variables ARABE et ANGLAIS (de la plus extrême à la moins extrême).

#La classe 2 est composée dŠindividus tels que Ilyas et Yassmine. Ce groupe est caractérisé par :

# des variables dont les valeurs ne diffèrent pas significativement de la moyenne.

#La classe 3 est composée dŠindividus tels que Anas, Soumaya et Firdaous . Ce groupe est caractérisé par

# de fortes valeurs pour les variables STAT et MATH (de la plus extrême à la moins extrême).

The R session information (including the OS info, R version and all packages used):

sessionInfo()

## R version 3.5.1 (2018-07-02)


## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 7 x64 (build 7601) Service Pack 1
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252
## [3] LC_MONETARY=French_France.1252 LC_NUMERIC=C
## [5] LC_TIME=French_France.1252
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] LeLogicielR_1.2.1 IndependenceTests_0.2 gdata_2.18.0
## [4] RColorBrewer_1.1-2 xtable_1.8-2 pca3d_0.10

16
## [7] rgl_0.99.16 factoextra_1.0.5 ggplot2_3.1.0
## [10] FactoMineR_1.41 knitr_1.20
##
## loaded via a namespace (and not attached):
## [1] gtools_3.8.1 tinytex_0.6 tidyselect_0.2.5
## [4] xfun_0.3 purrr_0.2.5 lattice_0.20-35
## [7] colorspace_1.3-2 miniUI_0.1.1.1 htmltools_0.3.6
## [10] rlang_0.3.0.1 manipulateWidget_0.10.0 pillar_1.3.0
## [13] later_0.7.3 glue_1.3.0 withr_2.1.2
## [16] bindrcpp_0.2.2 bindr_0.1.1 plyr_1.8.4
## [19] stringr_1.3.1 munsell_0.5.0 gtable_0.2.0
## [22] htmlwidgets_1.2 leaps_3.0 evaluate_0.10.1
## [25] httpuv_1.4.4.2 crosstalk_1.0.0 highr_0.7
## [28] Rcpp_1.0.0 scales_1.0.0 promises_1.0.1
## [31] flashClust_1.01-2 scatterplot3d_0.3-41 webshot_0.5.0
## [34] jsonlite_1.5 mime_0.5 ellipse_0.4.1
## [37] digest_0.6.18 stringi_1.2.4 dplyr_0.7.8
## [40] ggrepel_0.8.0 shiny_1.1.0 grid_3.5.1
## [43] tools_3.5.1 magrittr_1.5 lazyeval_0.2.1
## [46] tibble_1.4.2 cluster_2.0.7-1 crayon_1.3.4
## [49] pkgconfig_2.0.1 MASS_7.3-50 assertthat_0.2.0
## [52] R6_2.3.0 compiler_3.5.1

Sys.time()

## [1] "2019-01-15 22:13:00 CET"

17