R语言数据处理学习记录--使用linkET包完成mental test

R语言数据处理学习记录–使用linkET包完成mental test

注:本文仅作为自己的学习记录以备复习查阅

一 简单介绍一下

这个包依旧是来自于GitHub上,作者给出的介绍:linkET的目标是简单而直接地可视化基于’ ggplot2 '的矩阵热图。其实作者已经给出了非常详细的包的使用方法,从Data processing到后面各种图形的绘制都有详细的代码和图片展示,所以这里just给一些无法很方便访问GitHub但又有这方面需求的小伙伴做一个分享。
R语言数据处理学习记录--使用linkET包完成mental test_第1张图片

二 安装及使用方法

linkET包的安装:

# install.packages("devtools")
devtools::install_github("Hy4m/linkET", force = TRUE)
packageVersion("linkET")

如果无法直接通过GitHub安装,可以尝试下面其他的方法:

其他安装方法:

1 安装devtools或remotes包(Rstudio中),再使用devtools或者remotes安装GitHub上的包
install.packages("devtools")
install.packages("remotes")
devtools::install_github('Hy4m/linkET')
2 本地安装

我们在GitHub或者gitee上将zip包下载下来(xxx-master.zip),使用命令(路径啥的记得自己修改一下):

remotes::install_local("D:/linkET-master.zip",upgrade = F,dependencies = T)

接下来我们进行数据的处理和导入:
数据处理与导入:
与ggcor包的处理方法是一样的,我上一篇文章已经写过了,有需要的可以点击查看:https://blog.csdn.net/qq_22658373/article/details/129784098?spm=1001.2014.3001.5501

作者给出的代码如下,供大家参考:

library(linkET)
## matrix_data
matrix_data(list(mtcars = mtcars))
#> A matrix data object:
#> Number:  1 
#> Names:  mtcars 
#> Dimensions:  32 rows, 11 columns
#> Row names:  Mazda RX4, Mazda RX4 Wag, Datsun 710, Hornet 4 Drive, Hor... 
#> Column names:  mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb

## md_tbl
matrix_data(list(mtcars = mtcars)) %>% 
  as_md_tbl()
#> # A tibble: 352 × 3
#>    .rownames         .colnames mtcars
#>  * <chr>             <chr>      <dbl>
#>  1 Mazda RX4         mpg         21  
#>  2 Mazda RX4 Wag     mpg         21  
#>  3 Datsun 710        mpg         22.8
#>  4 Hornet 4 Drive    mpg         21.4
#>  5 Hornet Sportabout mpg         18.7
#>  6 Valiant           mpg         18.1
#>  7 Duster 360        mpg         14.3
#>  8 Merc 240D         mpg         24.4
#>  9 Merc 230          mpg         22.8
#> 10 Merc 280          mpg         19.2
#> # … with 342 more rows

## as method
as_matrix_data(mtcars)
#> A matrix data object:
#> Number:  1 
#> Names:  mtcars 
#> Dimensions:  32 rows, 11 columns
#> Row names:  Mazda RX4, Mazda RX4 Wag, Datsun 710, Hornet 4 Drive, Hor... 
#> Column names:  mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb

as_md_tbl(mtcars)
#> # A tibble: 352 × 3
#>    .rownames         .colnames mtcars
#>  * <chr>             <chr>      <dbl>
#>  1 Mazda RX4         mpg         21  
#>  2 Mazda RX4 Wag     mpg         21  
#>  3 Datsun 710        mpg         22.8
#>  4 Hornet 4 Drive    mpg         21.4
#>  5 Hornet Sportabout mpg         18.7
#>  6 Valiant           mpg         18.1
#>  7 Duster 360        mpg         14.3
#>  8 Merc 240D         mpg         24.4
#>  9 Merc 230          mpg         22.8
#> 10 Merc 280          mpg         19.2
#> # … with 342 more rows

## special function for correlation matrix
correlate(mtcars) %>% 
  as_matrix_data()
#> A matrix data object:
#> Number:  2 
#> Names:  r, p 
#> Dimensions:  11 rows, 11 columns
#> Row names:  mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb 
#> Column names:  mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb

correlate(mtcars) %>% 
  as_md_tbl()
#> # A tibble: 121 × 4
#>    .rownames .colnames      r        p
#>  * <chr>     <chr>      <dbl>    <dbl>
#>  1 mpg       mpg        1     0       
#>  2 cyl       mpg       -0.852 6.11e-10
#>  3 disp      mpg       -0.848 9.38e-10
#>  4 hp        mpg       -0.776 1.79e- 7
#>  5 drat      mpg        0.681 1.78e- 5
#>  6 wt        mpg       -0.868 1.29e-10
#>  7 qsec      mpg        0.419 1.71e- 2
#>  8 vs        mpg        0.664 3.42e- 5
#>  9 am        mpg        0.600 2.85e- 4
#> 10 gear      mpg        0.480 5.40e- 3
#> # … with 111 more rows

接下来进入正题
mantal test:
加载一些需要用到的包

library(vegan)
library(dplyr)
library(linkET)
library(ggplot2)#导出图片用

进行mental test:

mantel <- mantel_test(spec = Spec, env = educations,
                      spec_select = list(Temperature = 1, Rainfall = 2)) %>% 
  mutate(rd = cut(r, breaks = c(-Inf, 0.2, 0.4, Inf),
                  labels = c("< 0.2", "0.2 - 0.4", ">= 0.4")),
         pd = cut(p, breaks = c(-Inf, 0.01, 0.05, Inf),
                  labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))

运行上述代码后会生成一个mental的数据,上面给出的代码也是可以按需进行修改的,Spec和educations是我的两个数据集,记得在使用的时候更换为自己的数据集名称。

绘制图像:

p1 <- qcorrplot(correlate(educations), type = "lower", diag = FALSE) +
  geom_square() +
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature()) +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu")) +
  scale_size_manual(values = c(0.25, 0.5, 1)) +
  scale_colour_manual(values = color_pal(3)) +
  guides(colour = guide_legend(title = "Mantel's p", 
                               override.aes = list(size = 3), 
                               order = 1),
         #size = guide_legend(title = "Mantel's r",
                             #override.aes = list(colour = "grey35"), 
                             #order = 2),
         fill = guide_colorbar(title = "Spearman's r", order = 3))

最后一步就是让计算结果可视化起来,这里我更改之后的代码,其中颜色线条粗细和一些字都是可以更改和调整的(数据集名称记得调换)
查看可视化结果:

p1#也可以取其他名字,这里对应前一步可视化时赋值的标识符

导出图片(高清):

ggsave("D:/mantel-linkET.tiff",p1,width=8,height=6)

可以根据根据需求更改路径。

R语言数据处理学习记录--使用linkET包完成mental test_第2张图片

写在最后

linkET和ggcor基本上可以说是同根同源的包,且他们能实现的功能并不只有mantal test ,包括一些热图什么的都可以画,大家有兴趣的可以去作者的GitHub主页或者gitee上,gitee上也有拉取的数据库,能够看到源码和实现的效果。
R语言数据处理学习记录--使用linkET包完成mental test_第3张图片

**citation:**
To cite linkET in publications use:

Houyun Huang(2021). linkET: Everything is Linkable. R package version 0.0.3.

你可能感兴趣的:(r语言,学习,开发语言)