IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Comment trouver les erreurs et les problèmes d’exécution


Sujet :

R

  1. #1
    Nouveau membre du Club Avatar de Djamely
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut Comment trouver les erreurs et les problèmes d’exécution
    Bonsoir à tous,
    Je suis débutante avec la fonction "function", je connais l’architecture globale qui crée une fonction dans R comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    nomdemafonction<-function(variable1,variable2...)
    {
    #ici on met le contenu de la fonction (généralement on effectue des transformations aux variables passées en argument) 
    return(Variabledesortie)# il s'agit du résultat que va renvoyer la fonction
    }
     
    #une fois la fonction créée on peut l'utiliser:
     nomdemafonction(varA,varB)
    Ce que je ne sais pas, c'est comment trouver les erreurs et les problèmes d’exécution.
    Merci d'avance.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Ce dont vous avez besoin pour ça, c'est d'un débugger.
    Il est possible de débugger avec R en ligne de commande (fonction browse par exemple), mais c'est relativement complexe.
    Le mieux, pour ça, c'est donc de passer par un IDE qui présente cette fonctionnalité graphiquement. Par exemple, vous avez RStudio, et voici un article qui présente ses fonctions pour le débuggage.
    Vous pouvez aussi le faire avec le plugin StatEt pour Eclipse, qui dispose d'un débugger graphique.

    D'autres solutions sont certainement possibles, ce ne sont là que quelques pistes.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Nouveau membre du Club Avatar de Djamely
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    Bonsoir,
    Merci de votre aide.
    J'ai un programme comme cet exemple, je voudrais savoir comment trouver les erreurs et les problèmes d’exécution, dans le cas où vous n’avez aucune idée d'où se trouve l’erreur. Quelle est la fonction que nous utilisons dans ce cas ? La dernière question : comment connaître le temps d’exécution que dure une fonction ou un script ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CentrageReduction <- function( x )
    {
    x=c(1,2,3,4,5)
    xCentre<- x - mean( x )
    variance <- var( x )
    EcartType<- variance ^ (1/2)
    xCentreReduit <- xCentre / Ecart.Type
    return( xCentreReduit )
    }
    Merci d'avance.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Points : 351
    Points
    351
    Par défaut
    Bonsoir,
    Tu n'obtiens vraiment aucun message d'erreur ? En copiant collant tel quel et en exécutant CentrageFonction(x), j'obtiens "Error in CentrageReduction(x) : object 'Ecart.Type' not found".
    Et effectivement, à la 7e ligne, tu fais un calcul avec Ecart.Type alors que tu as défini EcartType... Sans point, donc...

    Sinon, quelques petites remarques :

    1) Tu es censée passer x en paramètre, ça n'a pas de sens de le redéfinir à l'intérieur de ta fonction. Retire donc la 3e ligne dans ta fonction, et exécute plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fct.x=c(1,2,3,4,5)
    resultat = CentrageReduction(fct.x)
    2) Je ne connais pas trop les débuggers. Par contre, pour débugger manuellement, je te conseille de simplement enregistrer tes paramètres dans des variables, et d'exécuter le corps de la fonction pas à pas. C'est à dire que tu exécutes seulement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #Définition des paramètres
    x=c(1,2,3,4,5)
    # Recopiage du corps de la fonction et exécution pas à pas
    xCentre<- x - mean( x )
    variance <- var( x )
    EcartType<- variance ^ (1/2)
    xCentreReduit <- xCentre / Ecart.Type
    Et dans ce cas là tu vois bien que tu as ton erreur à la dernière ligne...

    Pour ta dernière question sur le temps d'exécution : ça dépend de si tu utilises des boucles, de ta volumétrie... C'est un peu compliqué de te répondre comme ça.
    Pour la fonction que tu nous propose, elle ne prend quasiment pas de temps. Mais si tu veux t'imprégner un peu du sujet, je te conseille le lien Wikipédia sur la complexité des algorithmes...

    Bonne soirée.

Discussions similaires

  1. Comment récupérer des erreurs pour les traiter ?
    Par JuanLuis dans le forum Embarqué
    Réponses: 25
    Dernier message: 24/08/2012, 14h49
  2. Réponses: 1
    Dernier message: 02/11/2011, 16h29
  3. Comment voir les erreurs dans les scripts Ironpython?
    Par PomFritz dans le forum Sharpdevelop
    Réponses: 0
    Dernier message: 02/03/2011, 20h11
  4. Réponses: 2
    Dernier message: 04/12/2006, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo