Partage
  • Partager sur Facebook
  • Partager sur Twitter

help logiciel R

    17 novembre 2017 à 11:13:33

    Ecrire une fonction R qui vérifie si un vecteur est dans une matrice comme vecteur ligne ou colonne de deux manières avec une boucle et sans boucles.

    voici mon premier essaie mais je ne sais pas pourquoi ça ne marche pas 

    R=function(x)
    {
    x <- numeric()
    n=nrow(M)
    m=ncol(M)
    M=matrix(0,nrow=n,ncol=m)
    for(k in 1:length(x)){
    for(i in 1:n){
    if( x[k]==M[i,] ) 
    { return( "vecteur Colonne") }
    else { return("erreur") }
    }
    }
    }
    



    -
    Edité par Ninou.Me 17 novembre 2017 à 11:16:12

    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2017 à 13:07:15

      Je ne connais pas R, et je ne vais pas savoir t'aider beaucoup. Mais commençons déjà par expliciter la question, parce que 'Ca ne marche pas', ça veut tout dire et rien dire. 

      Ton problème c'est :

      - Le programme ne s'exécute pas ?

      - Le programme s'exécute, mais il donne un résultat faux

      Et si on est dans ce 2ème cas, peux-tu donner un exemple où il devrait afficher  XXX et il affiche autre chose.

      Ceci dit, même en ne connaissant pas R, on voit des choses... 

      Prend un papier et un crayon, et essaie de dérouler le programme, ligne à ligne. Quand le programme exécute la ligne 7, que vaut k, que vaut i, idem ligne 8, idem ligne 9  etc etc ... 

      Et tu vas vite comprendre pourquoi ton programme ne marche pas. Après, il faudra que tu imagines un truc pour solutionner ça... mais il faut que tu cherches plus.

      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2017 à 15:01:19

        Un truc bizarre c'est que tu marque n=nrow(M) mais M n'est pas encore défini
        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2017 à 21:03:17

          Bonsoir,

          Je ne m'y connais pas très bien en R non plus, mais il me semble bizarre (au même titre que la remarque précédente), que la matrice dont tu cherches à vérifier si x est un vecteur colonne ou ligne n'apparaisse pas dans les arguments de ta fonction...

          • Partager sur Facebook
          • Partager sur Twitter
            23 novembre 2017 à 12:37:25

            Salut !

            Ecoute je crois que tu devrais reprendre les bases. Ce que fait ton programme :

            1) Il attribue à la variable "x" la valeur de numeric(), fonction qui par défaut renvoie un vecteur de 1 élément équivalent à 0 ; aucun lien avec ce que tu souhaites faire, pourquoi utilises-tu cette fonction ??

            2) Il attribue à la variable "n" la valeur de nrow(M), qui compte le nombre de lignes de la matrice M..... que tu n'as pas définie !! Ensuite, même chose avec la variable "m". D'où la 1ère erreur quand tu exécutes ton code :

            > R (2)
            Error in nrow(M) : object 'M' not found



            3) Tu définis la matrice M (trop tard...) avec seulement la valeur 0, avec n lignes et m colonnes, mais n et m n'ont pas pu être définies (cf. point précédent). Même en admettant que tu modifies ton codes pour définir n et m, tu ne fais qu'appliquer la fonction matrix() sur un objet qui ne contient qu'une valeur unique ("0"). Donc ça n'a ni queue ni tête !

            Et pour finir, je ne suis pas sûr d'avoir compris le principe de ta fonction, tu pourrais expliquer avec un exemple ?

            Bon courage !

            -
            Edité par galactose 23 novembre 2017 à 12:44:52

            • Partager sur Facebook
            • Partager sur Twitter

            help logiciel R

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown