Les posteurs les plus actifs de la semaine
Eric Wajnberg
Fonction apply Vote_lcapFonction apply Voting_barFonction apply Vote_rcap 


Fonction apply

Aller en bas

Fonction apply Empty Fonction apply

Message par Komine le Mar 23 Juil 2013 - 11:39

Bonjour,
J’ai une matrice de 140 lignes. Avec le code ci-dessous, je peux calculer les moyennes de chaque colonne.
Code:
X <- matrix
apply(X,MARGIN=2,FUN=mean)
Mais comment je peux calculer la moyenne de chaque colonne toujours après chaque 10 lignes, ainsi je devrais avoir 14 moyennes.
Merci d’avance.

Komine

Nombre de messages : 71
Date d'inscription : 02/06/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Nik le Mar 23 Juil 2013 - 14:32

Tu veux dire calculer les 14 moyennes pour chacune des colonnes ?
si c'est ça :
Code:
mat <- matrix(rnorm(1400),nr=140)
fac <- gl(14,10)
moy <- rowsum(mat,group=fac)/10

Nik

Nombre de messages : 1605
Date d'inscription : 23/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Nik le Mar 23 Juil 2013 - 14:34

sinon avec apply :

Code:
apply(mat,2,function(x) tapply(x,fac,mean))

Nik

Nombre de messages : 1605
Date d'inscription : 23/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Komine le Mar 23 Juil 2013 - 15:26

Merci Nik de votre réponse.
Je pense que ma question manque de clarté.
Mes données se présentent comme ci-dessous: 1 seule colonne de valeurs. Je veux avoir la moyenne des 10 premières valeurs, puis la moyenne des 10 valeurs qui suivent, ainsi de suite.
N° var
1 0,910000
2 0,900000
3 0,870000
4 0,930000
5 0,990000
6 0,930000
7 0,940000
8 0,900000
9 0,990000
10 0,950000
11 0,740000
12 0,970000
13 0,970000
14 0,980000
15 0,980000
16 0,960000
17 0,980000
18 0,970000
19 0,930000
20 0,890000
21 0,830000
22 0,790000
23 0,800000
24 0,780000
25 0,760000
26 0,680000
27 0,770000
28 0,790000
29 0,910000
30 0,910000
31 0,930000
32 0,950000
33 0,970000
.... ............
.... ...........

Merci d'avance

Komine

Nombre de messages : 71
Date d'inscription : 02/06/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Nik le Mar 23 Juil 2013 - 15:29

alors c'est encore plus simple. En reprenant l'objet fac définit précédemment:
Code:
tapply(var,fac,mean)
Tu as alors les moyennes 10 lignes par 10 lignes

Nik

Nombre de messages : 1605
Date d'inscription : 23/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Komine le Mar 23 Juil 2013 - 18:50

Nil, merci 1000 fois ça marche à merveille.

Komine

Nombre de messages : 71
Date d'inscription : 02/06/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Fonction apply Empty Re: Fonction apply

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum