Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Somme suivant la valeur d'un champ dans une data.frame
4 participants
Page 1 sur 1
Somme suivant la valeur d'un champ dans une data.frame
(Re-)Bonjour tout le monde,
Encore une question qui fait suite à mon précédent post (en reprenant le même exemple).
J'ai une data frame de cette forme :
Receveur de tout conseil
Cordialement,
Khalid
Encore une question qui fait suite à mon précédent post (en reprenant le même exemple).
J'ai une data frame de cette forme :
- Code:
Numero Date Releve1 Releve2
9001 20120801 220 2
9001 20120802 242 1
9001 20120803 219 0
9002 20120804 192 2
- Code:
Numero Sum_Releve1 Sum_Releve2
9001 681 3
9002 192 2
Receveur de tout conseil
Cordialement,
Khalid
HDKalit- Nombre de messages : 85
Date d'inscription : 10/01/2013
Re: Somme suivant la valeur d'un champ dans une data.frame
Avec aggregate() mais tu ne peux faire qu'une colonne à la fois :
- Code:
aggregate(Releve1~Numero, data=tondataframe, FUN=sum)
- Code:
library(plyr)
ddply(tondataframe, .(Numero), summarize, sum1=sum(Releve1), sum2=sum(Releve2))
popotam- Nombre de messages : 371
Date d'inscription : 27/09/2006
Re: Somme suivant la valeur d'un champ dans une data.frame
Salut,
Je confirme la syntaxe de popotam pour ddply. Si tu as vraiment un gros jeu de données alors avec ddply tu peux aussi utiliser du calcul parallèle assez facilement via les librairies foreach et doParallel.
Nik
Je confirme la syntaxe de popotam pour ddply. Si tu as vraiment un gros jeu de données alors avec ddply tu peux aussi utiliser du calcul parallèle assez facilement via les librairies foreach et doParallel.
Nik
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Somme suivant la valeur d'un champ dans une data.frame
salut,
dans le cas d'une somme la fonction la plus performante est rowsum :
dans le cas d'une somme la fonction la plus performante est rowsum :
- Code:
microbenchmark(rowsum(tab[,3:4], tab$Numero), aggregate(Releve1~Numero, tab, FUN=sum), ddply(tab, .(Numero), summarize, sum1=sum(Releve1), sum2=sum(Releve2)))
Unit: microseconds
expr min lq median uq max neval
rowsum(tab[, 3:4], tab$Numero) 330.130 339.110 345.525 354.291 877.495 100
aggregate(Releve1 ~ Numero, tab, FUN = sum) 1011.770 1029.945 1051.113 1089.385 1780.648 100
ddply(tab, .(Numero), summarize, sum1 = sum(Releve1), sum2 = sum(Releve2)) 1649.365 1675.664 1701.109 1748.361 2480.676 100
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Sujets similaires
» Sorte de "jointure" sur des datas frame
» OUTPUT dans l'etape Data
» significativité de test de moyenne et valeur de la p-valeur
» comparer valeur réelle a valeur ressentie
» Valeur estimée et valeur ajustée.
» OUTPUT dans l'etape Data
» significativité de test de moyenne et valeur de la p-valeur
» comparer valeur réelle a valeur ressentie
» Valeur estimée et valeur ajustée.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum