Bonjour,
Je dois créer une fonction qui calculera les statistiques descriptives sur les données météos pour une unité de temps donnée (par exemple par jour, par mois, etc...).
Cette fonction doit avoir comme arguments :
var_interest: variable sur laquelle les statistiques descriptives vont être calculées,
g: vecteur qui définit les différents temps,
titre: vecteur contenant les éléments de titre (cf. document stat_desc.txt)
myfun: un vecteur contenant les indices descriptifs à calculer.
Par défaut, le vecteur myfun sera défini par c(’mean’, ’sd’, ’min’, ’max’).
La fonction doit renvoyer une matrice contenant une ligne par unité de temps (jour ou
mois) et x colonnes : une colonne pour chaque indice descriptif calculé.
Arrondir les résultats à deux décimales.
Par défaut, la matrice aura donc 4 colonnes, une pour la moyenne, une pour l’écart-type,
une pour le minimum et une pour le maximum. Veillez à avoir un affichage correct dans
la console.
Voilà le type de resultats que je dois avoir au final :
J’ai déjà essayé beaucoup de choses. J’arrive à avoir mes 4 colonnes pour mes statistiques descriptives (mystats) par unité de temps (g) et pour chacune des variables (var_interest)… mais sans aucun nom de colonnes et pas sous forme de matrice (j'ai essayé d'ajouter dimnames() dans la fonction mais ça ne marche pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ## ========================================================== ## Statistiques par mois de la variable humidité relative ## ---------------------------------------------------------- ## mean sd min max ## 2019-02 73.42 19.03 28.05 99.45 ## 2019-03 77.12 17.05 32.00 103.00 ## ... ## 2019-12 68.89 18.45 99.00 100.00 ## ========================================================== ## ========================================================== ## Statistiques par mois de la variable température ## ---------------------------------------------------------- ## mean sd min max ## 2019-02 73.42 19.03 28.05 99.45 ## 2019-03 77.12 17.05 32.00 103.00 ## ... ## 2019-12 68.89 18.45 99.00 100.00 ## ==========================================================
Je suis perdue… je suppose au final que je ne devrai peut-être pas utiliser tapply car je n’utilise pas tous les arguments… mais je ne vois pas quelle autre fonction utiliser.
Merci d'avance pour votre aide… même une piste de fonction à explorer m'aiderait déjà! (et peut-être pourquoi mon titre ne va pas chercher le nom de la variable?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 g <- meteo$month myfun <- c("mean", "sd", "min", "max") mystats <- function(x){c(mean(x), sd(x), min(x), max(x))} for (var_interest in meteo[,1:4]){print(tapply(var_interest, g, mystats))} Même le test pour mon titre ne fonctionne pas, le nom de la variable ne saffiche pas. Une idée de pourquoi ? var_interest <- meteo$T titre <- cat ("Statistiques par jour de la variable", colnames(var_interest),"\n") colnames(meteo)<- c("Température", "Pression Atmosphérique", "Humidité relative", "Point de rosée", "Date", "Mois")
Bien à vous,
A.
Partager