如何在 R 中查詢分組累積平均值?
要查詢分組累積平均值,我們可以使用 dplyr 包的 cummean 函式。
例如,如果我們有一個名為 df 的資料框,其中包含一個分類列(例如 Group)和一個數值列(例如 Response),則可以透過使用以下命令查詢分組累積平均值:
df%>%group_by(Group)%>%mutate(CM=cummean(Response))
示例 1
以下程式碼段建立了一個示例資料框:
Group<-sample(LETTERS[1:4],20,replace=TRUE) Score<-rpois(20,50) df1<-data.frame(Group,Score) df1
輸出
建立了以下資料框:
Group Score 1 B 48 2 D 54 3 B 44 4 C 50 5 B 50 6 C 48 7 A 58 8 B 44 9 B 44 10 C 51 11 C 50 12 B 48 13 B 63 14 D 43 15 C 53 16 C 52 17 C 59 18 B 46 19 A 51 20 C 58
為了載入 dplyr 包並查詢 df1 中 Score 的分組累積平均值,請將以下程式碼新增到上述程式碼段中:
library(dplyr) df1 %>% group_by(Group) %>% mutate(Cum_Mean = cummean(Score)) # A tibble: 20 x 3 # Groups: Group [4]
輸出
如果您將以上所有程式碼段作為單個程式執行,則會生成以下輸出:
Group Score Cum_Mean <chr> <int> <dbl> 1 B 48 48 2 D 54 54 3 B 44 46 4 C 50 50 5 B 50 47.3 6 C 48 49 7 A 58 58 8 B 44 46.5 9 B 44 46 10 C 51 49.7 11 C 50 49.8 12 B 48 46.3 13 B 63 48.7 14 D 43 48.5 15 C 53 50.4 16 C 52 50.7 17 C 59 51.9 18 B 46 48.4 19 A 51 54.5 20 C 58 52.6
示例 2
以下程式碼段建立了一個示例資料框:
Department<-sample(c("Finance","Marketing","HR"),20,replace=TRUE)
Salary<-sample(20000:50000,20)
df2<-data.frame(Department,Salary)
df2建立了以下資料框:
Department Salary 1 HR 20179 2 Finance 30870 3 Marketing 48467 4 HR 22429 5 Marketing 26829 6 Finance 34267 7 HR 27498 8 Marketing 38346 9 Finance 31771 10 HR 30438 11 HR 26913 12 HR 30034 13 Finance 26277 14 HR 43676 15 HR 45958 16 Finance 37371 17 HR 41023 18 HR 34838 19 Finance 44879 20 HR 20964
要查詢 df2 中 Salary 的分組累積平均值,請將以下程式碼新增到上述程式碼段中:
df2 %>% group_by(Department) %>% mutate(Cum_Mean=cummean(Salary)) # A tibble: 20 x 3 # Groups: Department [3]
輸出
如果您將以上所有程式碼段作為單個程式執行,則會生成以下輸出:
Department Salary Cum_Mean <chr> <int> <dbl> 1 HR 20179 20179 2 Finance 30870 30870 3 Marketing 48467 48467 4 HR 22429 21304 5 Marketing 26829 37648 6 Finance 34267 32568. 7 HR 27498 23369. 8 Marketing 38346 37881. 9 Finance 31771 32303. 10 HR 30438 25136 11 HR 26913 25491. 12 HR 30034 26248. 13 Finance 26277 30796. 14 HR 43676 28738. 15 HR 45958 30891. 16 Finance 37371 32111. 17 HR 41023 32016. 18 HR 34838 32299. 19 Finance 44879 34239. 20 HR 20964 31268.
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP