cours-2020-2021

Documents de cours 2020-2021 - FX Jollois

View the Project on GitHub fxjollois/cours-2020-2021

TP 5 : Dashboard dans R sur données dans MongoDB

Nous allons créer une application shiny, en utilisant le package shinydashboard.

Données

Dans ce TP, nous allons travailler sur des données concernant des films. Vous trouverez ci-dessous le contenu du premier document (réduit aux éléments importants pour cette évaluation - les textes longs ont été remplacé par "...").

{
	"_id" : ObjectId("573a1390f29313caabcd5c0f"),
	"plot" : "...",
	"genres" : [ "Drama", "History" ],
	"rated" : "NOT RATED",
	"cast" : [
		"Lillian Gish",
		"Spottiswoode Aitken",
		"Mary Alden",
		"Frank Bennett"
	],
	"num_mflix_comments" : 1,
	"title" : "Intolerance: Love's Struggle Throughout the Ages",
	"fullplot" : "...",
	"countries" : [ "USA" ],
	"released" : ISODate("1916-09-05T00:00:00Z"),
	"directors" : [ "D.W. Griffith" ],
	"writers" : [ "D.W. Griffith (scenario)", "Anita Loos (titles)" ],
	"awards" : {
		"wins" : 1,
		"nominations" : 0,
		"text" : "1 win."
	},
	"lastupdated" : "2015-09-05 00:01:19.580000000",
	"year" : 1916,
	"imdb" : {
		"rating" : 8,
		"votes" : 9880,
		"id" : 6864
	},
	"type" : "movie",
	"tomatoes" : {
		"viewer" : {
			"rating" : 3.8,
			"numReviews" : 4718,
			"meter" : 78
		},
		"dvd" : ISODate("2002-12-10T00:00:00Z"),
		"critic" : {
			"rating" : 8.1,
			"numReviews" : 32,
			"meter" : 97
		},
		"lastUpdated" : ISODate("2015-09-15T17:02:34Z"),
		"consensus" : "...",
		"rotten" : 1,
		"production" : "Cohen Media Group",
		"fresh" : 31
	}
}

Quelques points à noter :

Pour rappel, si vous ne l’avez pas fait, vous devez déjà télécharger le fichier movies.json, et le mettre dans la collection movies de la base de données test (via Compass donc).

Demande

Nous souhaitons donc avoir un tableau de bord, composé de plusieurs parties, avec le détail décrit ci-dessous.

Pour réaliser cela, vous devez effectuer les étapes suivantes :

  1. Créer une nouvelle application Shiny, à 2 fichiers
  2. Créer le squelette de l’interface (partie UI donc)
    • Pour l’utilisation de shinydashboard, n’hésitez pas à aller sur cette page
    • Quelques éléments d’information sont disponibles aussi sur cette page
  3. Créer la partie serveur
    • En amont de la fonction shinyServer(), il est possible de créer les data.frame et le ggplot nécessaires pour notre application
  4. On pourra idéalement intégrer des éléments communs à l’UI et au serveur dans le fichier global.r, qui est automatiquement appelé lors du démarrage d’une application shiny.

ATTENTION : vous devez considéré que les données puissent être dynamiques, c’est-à-dire qu’il faut que vous fassiez les récupérations de données à la volée, et pas tout intégrer à R puis faire les calculs ensuite.