Bonjour,


Je débute sous R, j'ai écrit deux fonctions :

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Quand on a une loi normale aux paramètres connus,
# Quelle est la probabilité qu'un échantillon ait une moyenne [inférieure | supérieure] à une moyenne de population ?
pnorm_mean_ech_infsup_mean_pop_ms_s <- function(moyenne, moyenne_echantillon, ecart_type_echantillon, inferieur) {
  if (class(moyenne) != "numeric") {
    stop("La moyenne de la loi normale (mu) doit contenir un nombre.")
  }
 
  if (class(ecart_type_echantillon) != "numeric") {
    stop("L'écart-type de l'échantillon doit contenir un nombre.")
  }
 
  if (class(moyenne_echantillon) != "numeric") {
    stop("La moyenne de l'échantillon doit contenir un nombre.")
  }
 
  if (class(inferieur) != "logical") {
    stop("Le paramètre inferieur doit contenir un booléen.");
  }
 
  # Centrer réduire.
  z <- (moyenne - moyenne_echantillon) / ecart_type_echantillon;
 
  if (inferieur) {
    return(pnorm(z));
  }
  else {
    return(1 - pnorm(z));
  }
}
 
# Quand on a une loi normale aux paramètres connus,
# Quelle est la probabilité qu'un échantillon ait une moyenne [inférieure | supérieure] à une moyenne de population ?
pnorm_mean_ech_infsup_mean_pop_sn <- function(moyenne, ecart_type, moyenne_echantillon, n, inferieur) {
  if (!check.integer(n)) {
    stop("Le nombre d'individus de l'échantillon doit être un entier.")
  }
 
  ecart_type_echantillon = ecart_type / sqrt(n);
  return(pnorm_mean_ech_infsup_mean_pop_ms_s(moyenne, moyenne_echantillon, ecart_type_echantillon, inferieur));
}
que je peux exécuter ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
pnorm_mean_ech_infsup_mean_pop_ms_s(12600, 13500, 452.5, inferieur=TRUE);
pnorm_mean_ech_infsup_mean_pop_sn(12600, 3200, moyenne_echantillon= 13500, n=50, inferieur=TRUE);
Le code doit sûrement paraître jeune, mais je débute avec R. Je n'ai pas acquis les bonnes pratiques encore.
J'ai trois questions :


1) R soutient le polymorphisme d'après sa documentation, mais ces deux fonctions je ne parviens pas à les rassembler sous le même nom : pnorm_mean_ech_infsup_mean_pop, par exemple, bien qu'elles aient des paramètres différents.
Ca ne fonctionne pas. En Java ou C++, je sais le faire, mais là en R, je n'y arrive pas.

2) Typage fort : je veux que les types de certains paramètres soient vérifiés dès la compilation.
Toujours, cela je sais le faire en Java ou C++.
Là, je n'y suis pas parvenu non plus et je dois passer par des expédients lourds dans mon code,
et ces contrôles de type n'ont lieu qu'à l'exécution. Ce n'est pas ce que je veux. Comment faire.


3) Je n'ai pas trouvé la documentation pour apprendre comment documenter une fonction.
Si. j'ai vu des annotations @param, etc.
Mais quand après je passe sur RStudio au dessus de ma fonction ou que je fais
?pnorm_mean_ech_infsup_mean_pop_sn
il ne trouve rien.

Comment documente t-on ses fonctions ?



Je vous remercie.