原文鏈接:http://tecdat.cn/?p=6488
數據准備
# Select columns of interest
mydata <- mtcars %>%
select(mpg, disp, hp, drat, wt, qsec)
# Add some missing values
mydata$hp[3] <- NA
# Inspect the data
head(mydata, 3)
計算相關矩陣
res.cor <- correlate(mydata)
res.cor
該函數的其他參數correlate()包括:
method:字符串,指示要計算哪個相關系數(或協方差)。“pearson”(默認),“kendall”或“spearman”之一:可以縮寫。diagonal:將對角線設置為的值(通常為數字或NA)。
探索相關矩陣
過濾器相關性高於0.8:
特定的列/行
該功能focus()使得可以focus()在列和行上進行操作。此函數的作用與dplyr類似slect(),但也會從行中排除選定的列。
- 選擇與興趣列相關的結果。所選列將從行中排除:
- 選定的列:
- 刪除不需要的列:
- 按正則表達式選擇列
- 選擇高於0.8的相關性:
- 關注一個變量與所有其他變量的相關性:
# Extract the correlation
# Plot the correlation between mpg and all others
重新排序相關矩陣
上/下三角
上/下三角形到缺失值
res.cor %>% shave()
將數據拉伸為長格式
res.cor %>% stretch()
使用tidyverse和corrr包處理相關性
可視化相關系數的分布:
重新排列並過濾相關矩陣:
res.cor %>%
focus(mpg:drat, mirror = TRUE) %>%
解釋相關性
res.cor %>%
focus(mpg:drat, mirror = TRUE)
- 制作相關圖:
- 重新排列然后繪制下三角形:
- 制作網絡
關聯數據庫中的數據
- 使用SQLite數據庫:
con <- DBI::dbConnect(RSQLite::SQLite(), path = ":dbname:")
db_mtcars <- copy_to(con, mtcars)
class(db_mtcars)
correlate()檢測數據庫后端,用於tidyeval計算數據庫中的相關性,並返回相關數據。
db_mtcars %>% correlate(use = "complete.obs")
- 使用spark:
sc <- sparklyr::spark_connect(master = "local")
mtcars_tbl <- copy_to(sc, mtcars)
correlate(mtcars_tbl, use = "complete.obs")





