Nous allons de nouveau utiliser les données synthétiques de la production scientifique mondiale de 1996 à 2014 (lien vers le fichier csv - source : SCImago Journal & Country Rank)

Ce fichier comporte les variables suivantes :

Vous devez produire un tableau de bord (via shinydashboard - couleur au choix) avec les éléments suivants :

Aide

Pour les demandes 1 et 4, il vous sera nécessaire de réaliser des calculs d’aggrégats, et des jointures entre les résultats pour la demande 4.

Pour la demande 2, il vous faudra sélectionner certaines lignes du jeu de données de départ.

Pour la demande 3, il faut calculer une évolution en base 100. Voici comment on peut réaliser cela avec la fonction apply(). Nous simulons une matrice de taille 10 par 5, suivant une loi normale de moyenne 10 et d’écart-type 2.

df = matrix(rnorm(50, mean = 10, sd = 2), 10, 5)
df
##            [,1]      [,2]      [,3]      [,4]      [,5]
##  [1,]  8.995615 10.179772  9.123820  9.817773  9.796742
##  [2,] 10.263062 10.192549 11.528121 13.514751 12.806407
##  [3,]  9.842166  9.596732 10.523923  9.724141  6.446449
##  [4,] 11.773570 11.479681 11.546809  9.777613 11.245735
##  [5,] 10.233943 10.246759  8.371242  8.619971  8.955433
##  [6,] 10.637260  9.941367  9.123099  9.556412 12.644462
##  [7,]  8.836419  9.222292  8.559557 10.365815  9.273119
##  [8,] 11.429065 11.021713 10.461889 10.834647 12.638131
##  [9,]  8.349481  8.172372  7.684541 12.130805 10.087558
## [10,]  9.280276 14.620594 10.494152 11.940404  6.242688

Pour avoir l’évolution en base 100 de chaque ligne (imaginons que nous avons des pays décrit par des valeurs sur 5 années), nous utilisons la fonction apply() sur les lignes (deuxième paramètre égal à 1), avec une fonction définie à l’intérieur, qui va prendre un vecteur en paramètre et qui va renvoyer ce même vecteur divisé par la première valeur, et multiplié par 100. Cela donne le code suivant

b100 = apply(df, 1, function (v) {
    return (v / v[1] * 100)
})
b100
##          [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]
## [1,] 100.0000 100.00000 100.00000 100.00000 100.00000 100.00000 100.00000
## [2,] 113.1637  99.31294  97.50630  97.50383 100.12523  93.45796 104.36685
## [3,] 101.4252 112.32633 106.92690  98.07399  81.79880  85.76550  96.86681
## [4,] 109.1395 131.68342  98.80082  83.04714  84.22923  89.83903 117.30788
## [5,] 108.9057 124.78154  65.49827  95.51678  87.50717 118.86954 104.94206
##           [,8]      [,9]     [,10]
## [1,] 100.00000 100.00000 100.00000
## [2,]  96.43582  97.87880 157.54482
## [3,]  91.53757  92.03615 113.08017
## [4,]  94.79906 145.28813 128.66432
## [5,] 110.57887 120.81659  67.26835

Nous voyons que la matrice résultat est de taille 5 par 10. Pour obtenir la transposée, il faut utiliser la fonction t().

b100_OK = t(b100)
b100_OK
##       [,1]      [,2]      [,3]      [,4]      [,5]
##  [1,]  100 113.16371 101.42519 109.13954 108.90574
##  [2,]  100  99.31294 112.32633 131.68342 124.78154
##  [3,]  100  97.50630 106.92690  98.80082  65.49827
##  [4,]  100  97.50383  98.07399  83.04714  95.51678
##  [5,]  100 100.12523  81.79880  84.22923  87.50717
##  [6,]  100  93.45796  85.76550  89.83903 118.86954
##  [7,]  100 104.36685  96.86681 117.30788 104.94206
##  [8,]  100  96.43582  91.53757  94.79906 110.57887
##  [9,]  100  97.87880  92.03615 145.28813 120.81659
## [10,]  100 157.54482 113.08017 128.66432  67.26835