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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    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
    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 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    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 actif
    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
    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