10
votes

Quelle est la manière idiomatique de vérifier et de documenter la fonction des conditions préalables et postconditions dans R?

Quel est le moyen idiomatique de vérifier et de documenter les conditions de fonctionnement des fonctions et des postconditions dans R? Je considérerais Eiffel construit en exiger et Assurez-vous constructions ou d 'S dans et out bloque l'état de l'art ici, mais la plupart des langues ne Demandez à ceux-ci au four ainsi ont développé les meilleures pratiques pour les approcher.

En vérifiant les conditions préalables, je veux dire jeter une certaine sorte d'exception d'exécution si des données qui ne répondent pas aux fonctions Les hypothèses sont transmises. Ayez actuellement une déclaration storifnot pour chaque condition préalable que je peux penser à la Début de la fonction. La même chose s'applique aux postconditions, mais en ce qui concerne la valeur de retour plutôt que les paramètres.

En outre, il existe une manière standard de documenter ce que sont ces conditions préalables et ces postconditions? Par exemple, il est assez standard de les épeler dans les commentaires Javadoc en Java.

Quelles sont les meilleures pratiques en r à cet égard?


0 commentaires

3 Réponses :


5
votes

Vérification de la validité des classes S4, où les chèques sont stockés avec la définition de la classe via "Séverection". Voir par exemple:

http://www.r-project.org/conferences/user-2004 /KeyNotes/leisch.pdf


0 commentaires

3
votes

En termes de documentation, je vous recommanderais de jeter un coup d'oeil au package roxygen2 . Il est comparable à Javadoc et à Doxygen dans la mesure où il stocke la documentation dans le fichier source avec le code. Il existe un certain nombre d'éléments à définir, par exemple:

  • Quels sont les arguments d'entrée
  • Que renvoie la fonction

    Mais cela ne vous empêche pas de créer votre propre PRE et post des éléments qui documentent les conditions préalables et post. Pour plus d'informations sur ROXYGEN2 voir Cran ou Stackoverflow .


0 commentaires

4
votes

Voir ? StopIfnot

ou

Pour les messages d'erreur plus amical, mais plus de code verbeux si (condition) arrêter ("... message ...") .


0 commentaires