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 :

Problème sur la fonction outer


Sujet :

R

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 31
    Points
    31
    Par défaut Problème sur la fonction outer
    Bonjour,
    j'essaye d'utiliser la fonction outer pour à partir de 2 vecteurs x et y, renvoyer la matrice f(x[i],y[j]).
    J'essaye pour cela d'utiliser la fonction outer, mais j'ai des problèmes. Par exemple sur un cas simple, j'ai l'erreur suivante.

    essai=function(i, j){
    return(3*i+(5*j))
    }

    x=1:10
    y=1:10
    outer(x,y,essai)
    Cela marche sans problème, maintenant en faisant :

    essai=function(i, j){
    return(1)
    }

    x=1:10
    y=1:10
    outer(x,y,essai)
    J'obtiens l'erreur :
    Erreur dans outer(x, y, essai) :
    dims [produit 100] ne correspond pas à la longueur de l'objet [1]


    Si quelqu'un pouvait me dire pourquoi, ça m'aiderait beaucoup.

    Ou sinon, si quelqu'un connait une fonction pour calculer la matrice des f(x[i],y[j]), je suis preneur ici.
    J'ai cherché également du côté de Vectorize mais ça conçait pour ce que je cherchais à faire ensuite.

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Salut,

    Je ne connais pas outer mais mapply() est une fonction qui correspond à ce que tu veux:

    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
     
    x=1:10
    y=1:10
     
    #outer(x,y,essai)   
    #-> visiblement ca bug si ton return n'est pas fonction des deux arguments
     
    #Toutes les combinaisons possibles de x et y
    e<-expand.grid(x,y)
     
    #Applique ta fonction essai pour toutes les combinaisons possibles de x et y
    m<-mapply(essai,e[,1],e[,2])
     
    #Transforme le vecteur obtenu en matrice
    matrix(m,nrow=length(x),ncol=length(y))

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    Génial, merci beaucoup Sengar

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème sur la fonction CreateProcess(..)
    Par mog83 dans le forum Visual C++
    Réponses: 5
    Dernier message: 20/05/2008, 13h46
  2. [RegEx] problème sur la fonction preg_replace pour formatage
    Par medkyl dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2008, 17h37
  3. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  4. [MySQL] exécuter un script php en commande linux : problème sur les fonctions mysql
    Par dr_octopus74 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2007, 16h34
  5. problème sur substring (fonction inconnue)
    Par nerick dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/12/2005, 15h46

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