2017-08-02 96 views
0

我想整合一些數據,不幸的是它好像我有一些損失......問題與聚合函數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) 

會回到我只有這個:

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

當我要的是這個

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

更新:我提出的方案再次嘗試,雖然R的告訴我,有一個在我的數據幀B項目與所述值和日期,我ggplot告訴我,否則......

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) 

它只能繪製從項目A的數據,無論我做什麼。但是,如果我不總結/彙總數據,它將爲我正常繪製兩個項目,但geom_text仍然會繼續爲項目A分別提供兩個數字欄。我的總體目標是有跟我描述,這樣我可以用乾淨geom_text我繪製彙總數據正確標註我的酒吧聚集一數據框...

+0

它運作良好,我使用匯總()除了錯誤(應該是dataframe $ Value) –

回答

1

你可以試試:

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

這給:

Project  Date Value 

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

和可以繪製像ggplot(data = df, aes(x = Date, y = Value, fill = Project)) + geom_bar(stat = 'identity')

enter image description here

編輯1:基於OP的評論,保存在數據幀輸出,在數據幀$ Valeu使用類似df %<>% ...而不是df %>% ...從圖書館magrittr

+0

你的解決方案據說是說,項目B的數據確實在數據幀中,但不會顯示在我的ggplot上... ggplot(data = df,aes(x = Date,y = Value,fill = Project))+ geom_bar(stat ='identity') – Naji

+0

適合我。很可能你只是沒有妥善保存數據。檢查編輯。另外,爲原始問題中未提及的後續追加添加新問題總是有幫助的。 – Aramis7d

+0

謝謝@Aramis,我在這裏添加了一個新的,更詳細的問題 https://stackoverflow.com/questions/45461936/ggplot-of-aggregated-data-frame-is-missing-values – Naji