somme des épaisseur à partir des doublons (année)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Labarre Thibault
Messages : 36
Enregistré le : 04 Fév 2015, 13:48

somme des épaisseur à partir des doublons (année)

Messagepar Labarre Thibault » 15 Mar 2017, 15:59

Bonjour à tous,

Je souhaiterai supprimer mes doublons dans la colonne année et faire la somme des valeurs épaisseur (table en exemple ci-dessous). j'ai débuté avec ce code mais celui-ci ne marche pas;

setwd("/Users/boreale/Desktop/R_stat")
test_th <- read.table("/Users/boreale/Desktop/R_stat/test_th.txt",header=T,sep="\t",quote="")
colnames(test_th)
rownames(test_th)
str(test_th)

# On initialise une colonne qui va contenir la même information que la colone Varves, mais sans les NA

test_th$sum <- NA
test_th$sum

# On remplit ensuite cette colonne élément par élément
tmp <- NA # tmp va être la valeur que l'on va attribuer en position i
for (i in 1:n) {
# dès que l'on rencontre quelque chose qui n'est pas NA dans la colonne Varves, on remplace tmp par cette valeur : cela arrive par exemple quand i vaut 1 !
if ( ! duplicated(test_th$annee[i])) tmp<- test_th$epaisseur[i]
test_th$cumul[i] <- tmp
}

Je vous remercie par avance.

annee varves epaisseur
1 2015 1_1S_A1 0.7
2 2015 1_1S_A1 3.0
3 2015 1_1S_A1 1.3
4 2014 2_1S_A1 0.9
5 2014 2_1S_A1 0.5
6 2013 3_1S_A1 0.7
7 2012 4_1S_A1 2.0
8 2012 4_1S_A1 2.2
9 2012 4_1S_A1 2.1
10 2012 4_1S_A1 4.0
11 2011 5_1S_A1 3.1
12 2010 6_1S_A1 1.1
13 2009 7_1S_A1 1.0
14 2009 7_1S_A1 1.4
15 2009 7_1S_A1 0.6

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: somme des épaisseur à partir des doublons (année)

Messagepar Serge Rapenne » 15 Mar 2017, 16:35

Bonjour,

Ce que tu cherche à faire n'est pas clair pour moi !
Si tu cherche à calculer les sommes de epaisseur par annee

Code : Tout sélectionner

with(test_th,tapply(epaisseur,annee,function(x) sum(x,na.rm=T)

ou avec le package dplyr

Code : Tout sélectionner

library(dplyr)
test_th %>% group_by(annee) %>% summarise(somme=sum(epaisseur,na.rm=T)


Serge

Labarre Thibault
Messages : 36
Enregistré le : 04 Fév 2015, 13:48

Re: somme des épaisseur à partir des doublons (année)

Messagepar Labarre Thibault » 15 Mar 2017, 17:12

j'aimerai créer un nouvelle table dans laquelle les doublons ont été compilés sous cette forme

annee varves cumul des épaisseur
1 2015 1_1S_A1 5
4 2014 2_1S_A1 1.4
6 2013 3_1S_A1 0.7
7 2012 4_1S_A1 10.3
11 2011 5_1S_A1 3.1
12 2010 6_1S_A1 1.1
13 2009 7_1S_A1 3

Merci par avance,

Labarre Thibault
Messages : 36
Enregistré le : 04 Fév 2015, 13:48

Re: somme des épaisseur à partir des doublons (année)

Messagepar Labarre Thibault » 15 Mar 2017, 19:33

avec ce code ça marche;

with(test_th,
aggregate(x = list(epaisseur = epaisseur),
by = list(annee = annee),
FUN = function(x) sum(x)))

cependant, je n'arrive pas à ajouter la colonne varves (format character)?


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité