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 :

Moyenne pondérée ( problème de valeurs supprimées)


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Points : 14
    Points
    14
    Par défaut Moyenne pondérée ( problème de valeurs supprimées)
    Bonjour,
    Me voila avec un nouveau problème, je souhaiterais faire une moyenne pondérée par groupe, seulement j'ai un sérieux souci.
    Exemple:

    NOMVAR FLUX pond
    FC 220782663 1
    FC 344521891 1
    FC 222356 1.07
    TG 400814730 1.32
    TG 229027 1.20
    TE 58879013 1
    TE 632149870 1.031
    TE 456210 1.19
    TE 87953 1
    avant de faire la pondération, j'ai supprimé toutes les observations de TE et TG, et je n'ai laissé que les FC, comme suit:
    NOMVAR FLUX pond
    FC 220782663 1
    FC 344521891 1
    FC 222356 1.07
    après ça, j'ai essayé de faire une moyenne pondérée avec une fonction que j'ai trouvée sur ce forum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab_etu= tapply(seq_along(tab_fin$FLUX),tab_fin$Nomvar
    function(xx){return(weighted.mean(x=tab_fin$FLUX[xx],w=tab_fin$pond))})
    Le problème:
    1. j'ai dû transposer la table que j'ai obtenue parce qu'il a considéré les colonnes comme des lignes ;
    2. j'ai eu les variables TE et TG dans les résultats mais qui ont des valeurs manquantes.

    NOMVAR FLUX_pond
    FC 123654
    TG NA
    TE NA
    Une solution?
    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
    Le problème pourrait venir du fait que NOMVAR est un facteur, et qu'il possède dans ses levels TG et TE.
    Pour le vérifier, que donne :
    Si ça renvoie FC, TG et TE, il faut que vous limitiez les niveaux du facteur à FC seulement, comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    levels(tab_fin$Nomvar) <- c("FC")
    Sinon, donnez-nous le résultat du code suivant :
    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
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Voilà le code d'erreurs de la fonction levels(tab_fin$Nomvar) <- c("FC"):
    Error in `levels<-.factor`(`*tmp*`, value = "FC") :
    number of levels differs
    C'est peut-être dû au fait que le nomvar n'est pas exactement FC, mais il y a plusieurs FC du genre FC_1236547 (le FC ou TG OU TE sont suivis d'une série de chiffres) ( j'avais simplifié dans l'exemple).
    Pour le résultat de ce code str(tab_fin) est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'data.frame':   2298 obs. of  4 variables:
     $ Codbanq           : int  6 6 6 6 6 6 6 6 6 6 ...
     $ Nomvar            : Factor w/ 446 levels "MFCDTA_0010E6NREM1ETTETTES5ATAT",..: 124 138 151 165 179 89 100 113 94 105 ...
     $ MTOBS             : num  2.21e+08 3.45e+08 3.45e+08 4.01e+08 4.01e+08 ...
     $ pond_corrigee_8097: num  1 1 1 1 1 1 1 1 1 1 ...

Discussions similaires

  1. Moyennes pondérées entre valeurs d'un fichier
    Par nicolas823 dans le forum Fortran
    Réponses: 2
    Dernier message: 18/12/2013, 08h51
  2. problème moyenne pondérée !
    Par reptilia1251 dans le forum Débuter
    Réponses: 7
    Dernier message: 30/06/2009, 15h31
  3. Problème de valeur de retour de MessageDlg
    Par Pill_S dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2005, 15h44
  4. problème récupération valeur d'un "div"
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2005, 10h04
  5. Problème de valeur null dans un recordset
    Par Petzouille57 dans le forum Access
    Réponses: 3
    Dernier message: 19/05/2005, 11h27

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