[英]How to use dplyr to subset dataframe based on group_by in R
我有一個包含銷售和人口數據的數據框。 參考如下:
Location Sales Population Month
A 10 480 Jan
B 12 480 Jan
C 14 480 Jan
A 13 480 Jan
B 11 480 Jan
C 16 480 Jan
A 12 480 Jan
B 10 480 Jan
C 14 480 Jan
我想要做的是使用 dplyr 按月分組(僅顯示一月但轉到十二月)以獲得銷售額和當月人口的總和。
我用這行代碼得到了我的人口的銷售額,結果是 NA..
test2 <- df_2019 %>% group_by(Month) %>% summarize(SumSales = sum(Total_Sales, na.rm = TRUE), Pop_Sum = sum(Population, na.rm = TRUE))
Month
SumSales
Pop_Sum
1 Apr 285591.9 134786490
2 Aug 384246.5 131901771
3 Dec 254748.9 89512147
4 Feb 251463.7 135634878
5 Jan 243624.6 135901304
6 Jul 286468.8 134335668
7 Jun 283395.2 134335668
8 Mar 289453.8 135658132
9 May 365272.2 134768586
10 Nov 291248.8 89576444
11 Oct 375402.2 89589288
12 Sep 290888.5 132878020
所需的輸出如下所示:
Month
SumSales
Pop_Sum
1 Apr 285591.9 437
2 Aug 384246.5 440
3 Dec 254748.9 443
4 Feb 251463.7 435
5 Jan 243624.6 480
6 Jul 286468.8 455
7 Jun 283395.2 465
8 Mar 289453.8 460
9 May 365272.2 479
10 Nov 291248.8 435
11 Oct 375402.2 444
12 Sep 290888.5 451
其中 Month Population 有多個具有相同值的行,但銷售額是唯一的。 任何幫助都會非常有幫助!
由於已經計算了population
值,我們可以取每個月的任何population
值。 例如,取Population
的第一個值,我們可以這樣做
library(dplyr)
df_2019 %>%
group_by(Month) %>%
summarize(SumSales = sum(Total_Sales, na.rm = TRUE),
Pop_Sum = first(Population))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.