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

MATLAB Discussion :

Statistique par groupe sur un dataset [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 11
    Par défaut Statistique par groupe sur un dataset
    Bonjour à tous,

    Je suis bloquée depuis maintenant deux jours avec un code que je n'arrive pas à automatiser.. Je cherche à obtenir des statistique par groupe à partir d'un dataset. Mais, selon la notation je n'arrive pas à obtenir les résultats. Je m'explique. Ce code là fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [ID, mean_indic, std_indic] = grpstats(result.nb_peaks(critEcal),result.ID(critEcal),{'gname', 'mean', 'std'})
    J'obtiens alors mes statistiques sur le nombre de pics par ID. Mais si je veux automatiser un peu en prédéfinissant une liste des indicateurs que je veux obtenir par ID ça se corse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    list_indic = {'nb_peaks', 'max_resolution', 'score_rank_1'};
     
    for i=1:length(list_indic)
    grpstats(result(critEcal, list_indic(i)),result(critEcal, 'ID'))
    La dernière instruction me renvoi :

    ??? Error using ==> subsindex
    Function 'subsindex' is not defined for values of class 'dataset'.

    Error in ==> dsgrpstats at 91
    [group,glabel,groupname] = mgrp2idx(a_data(groupvars),a_nobs);

    Error in ==> grpstats at 136
    [varargout{1:nargout}] = dsgrpstats(x,group,whichstats,varargin{:});
    Je suis débutante de chez débutante en Matlab, j'ai l'habitude d'effectuer mes travaux sous R et je ne comprends pas bien encore le système avec les matrices etc... de Matlab.
    Alors je vous remercie d'avance pour votre aide et votre compréhension ! Et j'espère que quelqu'un pourra m'aider

  2. #2
    Membre régulier
    Homme Profil pro
    Scientific consultant in spatial remote sensing
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Scientific consultant in spatial remote sensing
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut
    Je ne sais pas trop comment marchent les datasets, mais d'après ce que tu écris dans ta première ligne de code et vu le message d'erreur, ça se comporte comme des structures ou comme des objets.

    Si j'ai bien compris, tu veux appeler dynamiquement dans une boucle les champs 'nb_peaks', 'max_resolution' et 'score_rank_1' de ton dataset. Pour appeler dynamiquement un champ, il faut le nom du champ dans une chaine de caractères entre parenthèses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ma_variable.champ1=42;
    mon_champ_str='champ1';
     
    % Ces 3 lignes afficheront '42':
    disp(ma_variable.champ1);
    disp(ma_variable.('champ1'));
    disp(ma_variable.(mon_champ_str));
    Dans ce cas, je suppose que ton code doit s'écrire comme ça:
    (note bien les {} autour de l'indice. list_indic est un tableau cellulaire, pour accéder à la chaine de caractères que contient chaque cellule, il faut utiliser {} et non ())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    list_indic = {'nb_peaks', 'max_resolution', 'score_rank_1'};
     
    for i=1:length(list_indic)
     grpstats(result.(list_indic{i})(critEcal),result.ID(critEcal))
    end

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 11
    Par défaut
    Merci beaucoup !
    Ce sont des choses comme ca qu'il me manque : les {} à la place des () ...

    Problème résolu

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

Discussions similaires

  1. Statistique par tranche sur des données agrégées
    Par patrick21 dans le forum Webi
    Réponses: 11
    Dernier message: 27/04/2012, 14h37
  2. Réponses: 9
    Dernier message: 13/02/2012, 22h56
  3. tri par groupe d'options sur formulaire continu
    Par ced911 dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/08/2010, 11h20
  4. Autorisations et vues sur liste et par groupe
    Par vedavi dans le forum SharePoint
    Réponses: 1
    Dernier message: 26/04/2010, 15h31
  5. [XI] problème avec groupe sur un champ trié par origine ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 11/04/2007, 15h31

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