2017-08-02 1 views
0

Je suis en train de consolider des données et, malheureusement, il semble que je vais avoir une certaine perte ...Problèmes avec fonction d'agrégation R

dataframe <- Project Subproject  Value  Date 
       A   1    9  2017-03-08 
       A   2    5  2017-03-08 
       B   1    1  2017-03-08 

overall <- aggregate(dataframe$Valeu, by=list(Date=dataframe$Date, Project=dataframe$Project), FUN=sum) 

va me revenir à seulement ceci:

dataframe <- Project  Value  Date 
       A   14  2017-03-08 

quand ce que je veux est cette mise à jour

dataframe <- Project Value  Date 
       A   14  2017-03-08 
       B   1  2017-03-08 

: J'ai essayé à nouveau avec la solution proposée et bien que R me dit qu'il ya un projet B dans mon dataframe avec lesdites valeurs et dates, mon ggplot me dit autrement ...

ggplot(data = dataframe, aes(x = Date, y = Value, fill = Project)) + 
    geom_bar(stat = 'identity') + geom_text(data = dataframe, aes(label = Value, fill = Project), size=4) 

Il complote que les données du projet A, peu importe ce que je fais. Cependant, si je ne résume pas/agréger les données, les deux projets seront pour moi normaux, mais le géomouvera continuera à donner la barre pour le projet A les deux nombres séparément. Mon objectif général est d'avoir une trame de données qui est agrégée comme je l'ai pour que je puisse tracer mes données agrégées proprement avec mes geom_text étiquetage des barres correctement ...

+0

Il fonctionne bien pour moi globale à l'aide() en dehors de l'erreur dans dataframe $ Valeu (devrait être dataframe $ Value) –

Répondre

1

vous pouvez essayer:

df %>% 
    group_by(Project, Date)%>% 
    summarise(Value = sum(Value)) 

qui donne:

Project  Date Value 

1  A 2017-03-08 14 
2  B 2017-03-08  1 

et peut être tracée comme ggplot(data = df, aes(x = Date, y = Value, fill = Project)) + geom_bar(stat = 'identity')

enter image description here

modifier 1: basé sur le commentaire de l'OP, pour enregistrer la sortie dans la trame de données, utilisez quelque chose comme df %<>% ... au lieu de df %>% ... de la bibliothèque magrittr

+0

votre solution est censée dire que les données pour le projet B sont en effet dans la base de données mais ne seront pas affichées sur mon ggplot ... ggplot (data = df, aes (x = Date, y = Valeur, remplir = Projet)) + geom_bar (stat = 'identity') – Naji

+0

fonctionne pour moi. il est fort probable que vous ne sauvegardiez pas les données correctement. vérifiez l'édition. De plus, il est toujours utile d'ajouter une nouvelle question pour les suivis qui ne sont pas mentionnés dans la question initiale. – Aramis7d

+0

merci @Aramis, j'ai ajouté une nouvelle question, plus élaborée sur mon problème ici https://stackoverflow.com/questions/45461936/ggplot-of-aggregated-data-frame-is-missing-values – Naji