如何在 R 的 data.table 物件中查詢每個分組的絕對最大值?
為了在 R 的 data.table 物件中找到每個分組的絕對最大值,我們可以按照以下步驟操作:
首先,建立一個 data.table 物件。
然後,使用 dplyr 包的 `summarise_each` 函式以及 `which.max` 和 `abs` 函式,在使用 `group_by` 分組後查詢每個分組的絕對最大值。
示例 1
建立 data.table 物件
讓我們建立一個如下所示的 data.table 物件:
library(data.table)
Class<-sample(c("I","II","III"),25,replace=TRUE)
Response<-sample(-50:50,25)
DT1<-data.table(Class,Response)
DT1輸出
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因您的系統而異):
Class Response 1: II 25 2: I -29 3: II 14 4: III 35 5: III -3 6: I -10 7: III -22 8: III -28 9: II -15 10: I -41 11: I -8 12: III -1 13: II -11 14: II 9 15: III 45 16: II -23 17: I 42 18: II -16 19: III 44 20: II -47 21: III 37 22: III -27 23: I -40 24: I 18 25: II 3 Class Response
查詢每個分組的絕對最大值
使用 dplyr 包的 `summarise_each` 函式以及 `which.max` 和 `abs` 函式,查詢 `Response` 列中每個分組的絕對最大值,分組方式如下所示:
library(data.table)
Class<-sample(c("I","II","III"),25,replace=TRUE)
Response<-sample(-50:50,25)
DT1<-data.table(Class,Response)
library(dplyr)
DT1 %>% group_by(Class) %>% summarise_each(funs(.[which.max(abs(.))]))輸出
# A tibble: 3 x 2 Class Response <chr> <int> 1 I 42 2 II -47 3 III 45
示例 2
建立 data.table 物件
讓我們建立一個如下所示的 data.table 物件:
library(data.table)
Factor<-sample(c("F1","F2","F3","F4","F5"),25,replace=TRUE)
DV<-rnorm(25)
DT2<-data.table(Factor,DV)
DT2輸出
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因您的系統而異):
Factor DV
1: F5 -2.17198942
2: F2 1.86828270
3: F5 -0.13921697
4: F1 -1.12527133
5: F2 0.30994193
6: F3 -0.85019956
7: F1 -0.53960590
8: F4 0.71515012
9: F1 0.95894780
10: F1 0.69673391
11: F1 1.59025968
12: F1 0.54539870
13: F2 1.03472636
14: F2 -0.86223774
15: F5 1.09875408
16: F5 0.76012240
17: F2 -0.81212071
18: F4 0.16992534
19: F4 0.15300303
20: F3 -1.16854925
21: F5 0.83239589
22: F5 -0.43753269
23: F4 0.03010316
24: F3 0.15060870
25: F5 -0.84028548
Factor DV查詢每個分組的絕對最大值
使用 dplyr 包的 `summarise_each` 函式以及 `which.max` 和 `abs` 函式,查詢 `DV` 列中每個分組的絕對最大值,分組方式如下所示:
library(data.table)
Factor<-sample(c("F1","F2","F3","F4","F5"),25,replace=TRUE)
DV<-rnorm(25)
DT2<-data.table(Factor,DV)
library(dplyr)
DT2 %>% group_by(Factor) %>% summarise_each(funs(.[which.max(abs(.))]))輸出
# A tibble: 5 x 2 Factor DV <chr> <dbl> 1 F1 1.59 2 F2 1.87 3 F3 -1.17 4 F4 0.715 5 F5 -2.17
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP