原文链接: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")