如何在 R 中找到資料表物件中各組的相關矩陣?
要查詢組的相關性,我們可以使用 cor 函式,但它不能直接使用。
為此,我們首先需要為資料表物件的組列設定鍵。例如,如果我們有一個數據表 DT,其中一個數值列定義為 x,一個組列定義為 Group,並且有 4 個組 a、b、c 和 d,那麼可以找到組 a 和 b 的數值的相關性如下:
setkey(DT,Group) cor(DT["a"]$x,DT["b"]$x)
載入 data.table 包:
library(data.table)
示例
考慮以下資料表物件:
x<-rnorm(20,1,0.04) Class<-rep(LETTERS[1:2],10) DT1<-data.table(x,Class) DT1
輸出
x Class 1: 1.0315869 A 2: 1.0240505 B 3: 0.9820461 A 4: 1.0095865 B 5: 1.0025895 A 6: 1.0076078 B 7: 1.0266381 A 8: 0.9735519 B 9: 1.0457029 A 10: 1.0407300 B 11: 1.0384560 A 12: 0.9798408 B 13: 0.9810080 A 14: 1.0602431 B 15: 0.9968140 A 16: 1.0239540 B 17: 0.9675810 A 18: 1.0723230 B 19: 0.9705898 A 20: 1.0713552 B
查詢 A 類和 B 類之間的相關性:
示例
setkey(DT1,Class) cor(DT1["A"]$x,DT1["B"]$x)
輸出
[1] -0.6282066
示例
y<-rpois(20,5)
Group<-rep(c("S1","S2","S3","S4"),5)
DT2<-data.table(y,Group)
DT2輸出
y Group 1: 3 S1 2: 3 S2 3: 5 S3 4: 7 S4 5: 9 S1 6: 6 S2 7: 7 S3 8: 6 S4 9: 4 S1 10: 5 S2 11: 6 S3 12: 4 S4 13: 9 S1 14: 6 S2 15: 4 S3 16: 6 S4 17: 8 S1 18: 5 S2 19: 2 S3 20: 1 S4
示例
setkey(DT2,Group) cor(DT2["S1"]$y,DT2["S2"]$y)
輸出
[1] 0.8502303
示例
cor(DT2["S1"]$y,DT2["S3"]$y)
輸出
[1] -0.1984965
示例
cor(DT2["S1"]$y,DT2["S4"]$y)
輸出
[1] -0.1962715
示例
cor(DT2["S2"]$y,DT2["S3"]$y)
輸出
[1] 0.1061191
示例
cor(DT2["S2"]$y,DT2["S4"]$y)
輸出
[1] -0.1709964
示例
cor(DT2["S3"]$y,DT2["S4"]$y)
輸出
[1] 0.6423677
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP