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 :

Fonction récursive R


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fonction récursive R
    Bonjour à toutes et à tous,

    Je suis un grand débutant dans la programmation R, et rien de bien impressionnant ... je me suis planté. Pour vous contextualiser un peu l'idée, j'essaye de créer une fonction récursive sous R qui s'appelle (en faisant un échantillon "de lui-même") tant que le compteur n'est pas arrivé à un certain niveau. Une fois cette chose faite, la fonction appelle une autre fonction offrant un résultat.
    Le but d'utiliser R est donc ici pour moi d'éviter de faire des boucles imbriquées de nombre variable, en passant par la vectorisation.
    Au final, si n = 1, alors le résultat de Last sort ; si n=2 un échantillon de m Last sort et on en fait une moyenne ; si n=3 un échantillon de m Appel (constitué de moyennes de m Appel "plus profonds" ) sort et on en fait une moyenne ......

    J'espère avoir été clair en exposant mon problème, car je ne trouve à ce jour pas de solution. Je vous joins mon code juste en-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Appel<-function(i,m,n,a,b)
    {
    i=i+1
    if (i=n) {
    z=Last(m,a,b,n)
    }
    else {
    x=replicate(m, Appel(i,m,n,a,b))
    y=mean(x)
    }
    return(y)
    }
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Pas sûr d'avoir compris ce que tu voulais faire...

    Je te conseille de commenter ton code, on ne comprend pas vraiment comment tu comptes appliquer ta fonction et sur quoi... Le mieux reste un exemple.

    Tu dis
    "si n = 1, alors le résultat de Last sort ; si n=2 un échantillon de m Last sort et on en fait une moyenne ; si n=3 un échantillon de m Appel (constitué de moyennes de m Appel "plus profonds" ) sort et on en fait une moyenne ...... "
    mais tu ne nous dis pas ce qui ne va pas dans ton code... Quelle(s) erreur(s) obtiens tu? Comment initialises tu tes variables? Parce que nous dire "si n=1, n=2 etc" ce n'est pas vraiment ce que l'on voit dans ton code... A mon avis tu dois avoir une récursion infini si tu mets ta récursivité dans un else comme ici.. Tu as besoin d'une condition d'arrêt à l'intérieur de ton else...

    En espérant avoir pu t'aider un peu...

Discussions similaires

  1. fonction récursive: erreur
    Par calla29 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/05/2006, 11h51
  2. [VB6] XML, fonction récursive de recherche
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2006, 21h27
  3. [XSLT] fonction récursive à N niveaux
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/03/2006, 12h30
  4. Fonction récursive renvoi sur page d'erreur
    Par peck dans le forum Langage
    Réponses: 1
    Dernier message: 23/12/2005, 10h08
  5. Problème de fonction récursive avec un TcxDBTreeList
    Par isachat666 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/12/2005, 13h12

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