Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

R : boucle "for" ou "apply"



  1. #1
    HigginsVincent

    R : boucle "for" ou "apply"


    ------

    Bonjour,

    Je suis utilisateur du logiciel R : CRAN, et j'essaye de me convaincre de l'avantage d'utiliser des fonctions du genre "apply", "sapply" etc. au lieu de boucles for.

    Par exemple :

    Code:
    X <- matrix(rnorm(10*100),10,100)
    moy_ligne <- apply(X,1,mean)
    plutôt que :

    Code:
    moy_ligne2 <- c()
    for (i in 1:10) moy_ligne2[i] <- mean(X[i,])
    J'ai bien cru remarquer que c'était plus rapide ainsi, mais comment m'en convaincre ? Comment également savoir si ça prend plus de place en mémoire de faire une boucle "for" ?

    Merci d'avance pour vos commentaires.
    Cordialement,
    V.

    -----

  2. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  3. #2
    sebowski

    Re : R : boucle "for" ou "apply"

    Je ne sais pas en quoi tu programmes mais en Lisp par exemple, la fonctin apply est une fonction récurssive (avec un teste de fin...). Je ne pourrais plus t'expliquer le pourquoi du comment mais une chose est certaine, le principe de la récussivité et bien plus rapide et econome que la fonction "for" qui elle est "analytique" si je peux dire... c'est elle dire qu'elle est toujours en train de vérifier le résultat entrant puis elle le compare avec les conditions... blablabla.

    Bref, oui c'est plus rapide et oui !!! c'est le performant.

  4. #3
    HigginsVincent

    Re : R : boucle "for" ou "apply"

    Je ne code pas dans un langage récursif (mais en R), mais on dirait bien qu'il y a des références à des choses récursives dans le code des fonctions de type "apply"...

    Quelqu'un saurait pourquoi ?

Discussions similaires

  1. La science du "Comment?" peut-elle dire "POURQUOI?" au moins une fois?
    Par Jean-Michel Tengang dans le forum Epistémologie et Logique (archives)
    Réponses: 83
    Dernier message: 12/07/2017, 23h12
  2. Réponses: 0
    Dernier message: 28/02/2007, 13h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.