Les posteurs les plus actifs de la semaine
Eric Wajnberg
 
RapidosFlash
 
Nik
 
Florent Aubry
 


Agrégation et comptage de données

Aller en bas

Agrégation et comptage de données

Message par leetong le Dim 30 Juil 2017 - 19:05

Veuillez me pardonner d'avance si ma question peut sembler triviale.
J'ai actuellement un problème avec R que je n'arrive pas à résoudre.
Vous semblez très actif sur ce forum et j'espère pouvoir un jour m'en sortir.
Ainsi, j'ai une table contenant des dates et des chiffres et du texte. Ce texte représente une clef et peux apparaitre plusieurs fois.
J'aimerais effectuer un regroupement par période (mois, année) pour obtenir le nombre de clef différentes par période.
01/01/2017 cleA
01/02/2017 cleA
02/02/2017 cleB
03/02/2017 cleA
01/03/2017 cleB

Ainsi, j'aimerais obtenir
Janvier 1 (1 seule clé)
Février 2 (2 clé déférentes uniquement)
Mars 1

une variante serait comme un tableau croisé
Cle mois
cleA janvier
cleaB fevrier mars

merci par avance

leetong

Nombre de messages : 1
Date d'inscription : 30/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Agrégation et comptage de données

Message par zezima le Lun 31 Juil 2017 - 7:37

Bonjour,

Voici un petit code avec la fonction "substr" qui permet de sélectionner l'emplacement de ta chaine de caractère que tu veux copier (ici le mois et l'année) :

Code:
data=matrix(,4,3)
data[,1]=c("01/01/2017","01/03/2017","01/02/2017","01/01/2017")
data[,2]=c("A","A","B","B")
data[,3]=substr(data[,1],4,10)

Ensuite tu fais un "table" des deux variables qui t'intéressent :
Code:
table(data[,3],data[,2])
avatar
zezima

Nombre de messages : 818
Date d'inscription : 26/02/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Agrégation et comptage de données

Message par droopy le Lun 31 Juil 2017 - 15:16

Bonjour,

avec les packages tidyr et dplyr (qui font partie de tidyverse) :
Code:
df <- structure(list(date = structure(c(1L, 2L, 4L, 5L, 3L), .Label = c("01/01/2017",
"01/02/2017", "01/03/2017", "02/02/2017", "03/02/2017"), class = "factor"),
    cle = structure(c(1L, 1L, 2L, 1L, 2L), .Label = c("cleA",
    "cleB"), class = "factor")), .Names = c("date", "cle"), class = "data.frame", row.names = c(NA,
-5L))

df %>% separate(date, into = c("jour", "mois", "annee"), sep = "/") %>%
  group_by(annee, mois) %>% summarise(N = n_distinct(cle))

# avec xtabs :
 xtabs( ~ cle +  mois, df %>% separate(date, into = c("jour", "mois", "annee"), sep = "/"))
cdlt
avatar
droopy

Nombre de messages : 1109
Date d'inscription : 04/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Agrégation et comptage de données

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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