From d7167a71010ae11d05c489bdd857dc2d74869e7b Mon Sep 17 00:00:00 2001 From: topepo Date: Sat, 21 Mar 2020 16:45:34 -0400 Subject: [PATCH 1/5] small updates --- .gitignore | 3 ++- DESCRIPTION | 2 +- README.md | 2 ++ tools/readme/combination-1.png | Bin 28784 -> 26275 bytes tools/readme/combination-2.png | Bin 39199 -> 26066 bytes 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 7fcd12a..6b567e3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ .Ruserdata inst/doc packrat/lib*/ -/logs \ No newline at end of file +/logs +README.html diff --git a/DESCRIPTION b/DESCRIPTION index eced72e..c57c411 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: corrr Type: Package -Version: 0.4.1.9000 +Version: 0.4.2 Title: Correlations in R Description: A tool for exploring correlations. It makes it possible to easily perform routine tasks when diff --git a/README.md b/README.md index f198056..cad40aa 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Status](https://travis-ci.org/tidymodels/corrr.svg?branch=master)](https://travi [![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/corrr)](https://cran.r-project.org/package=corrr) [![Coverage Status](https://img.shields.io/codecov/c/github/tidymodels/corrr/master.svg)](https://codecov.io/github/tidymodels/corrr?branch=master) +[![R build +status](https://github.com/tidymodels/corrr/workflows/R-CMD-check/badge.svg)](https://github.com/tidymodels/corrr/actions) corrr is a package for exploring **corr**elations in **R**. It focuses on creating and working with **data frames** of correlations (instead of diff --git a/tools/readme/combination-1.png b/tools/readme/combination-1.png index 6c63b64e57b60768bcf1cb6bf944b418b7588feb..125e851c3a3259c7c865376905c68f78dd3ebccc 100644 GIT binary patch literal 26275 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 diff --git a/tools/readme/combination-2.png b/tools/readme/combination-2.png index e458ce801eb492ec507d51f65a727df2b4b4a728..b59eeb2708cfdf6204cf1c7f49038fbd7c494036 100644 GIT binary patch literal 26066 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

I_h9vKpC$IUU=QXtVffY>@8Om_2?bVDBNAe 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 NI!{+Wmvv4FO#l-89asPW From aa70fa342ab7d690c434a2871b02a5529e2b5b35 Mon Sep 17 00:00:00 2001 From: topepo Date: Sat, 21 Mar 2020 16:50:50 -0400 Subject: [PATCH 2/5] revdep update --- .gitignore | 1 + revdep/README.md | 75 +++++++++--------------------------------------- 2 files changed, 14 insertions(+), 62 deletions(-) diff --git a/.gitignore b/.gitignore index 6b567e3..1aa6d26 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ inst/doc packrat/lib*/ /logs README.html +revdep diff --git a/revdep/README.md b/revdep/README.md index 7e842bb..dd68d57 100644 --- a/revdep/README.md +++ b/revdep/README.md @@ -2,74 +2,25 @@ |field |value | |:--------|:----------------------------| -|version |R version 3.6.2 (2019-12-12) | -|os |Ubuntu 18.04.3 LTS | -|system |x86_64, linux-gnu | +|version |R version 3.6.1 (2019-07-05) | +|os |macOS Mojave 10.14.6 | +|system |x86_64, darwin15.6.0 | |ui |RStudio | -|language |en_US:en | +|language |(EN) | |collate |en_US.UTF-8 | |ctype |en_US.UTF-8 | -|tz |America/Winnipeg | -|date |2020-02-10 | +|tz |America/New_York | +|date |2020-03-21 | # Dependencies -|package |old |new |Δ | -|:------------|:--------|:--------|:--| -|corrr |0.4.0 |0.4.1 |* | -|assertthat |0.2.1 |0.2.1 | | -|BH |1.72.0-3 |1.72.0-3 | | -|bitops |1.0-6 |1.0-6 | | -|caTools |1.18.0 |1.18.0 | | -|cli |2.0.1 |2.0.1 | | -|colorspace |1.4-1 |1.4-1 | | -|crayon |1.3.4 |1.3.4 | | -|dendextend |1.13.3 |1.13.3 | | -|digest |0.6.23 |0.6.23 | | -|dplyr |0.8.4 |0.8.4 | | -|ellipsis |0.3.0 |0.3.0 | | -|fansi |0.4.1 |0.4.1 | | -|farver |2.0.3 |2.0.3 | | -|foreach |1.4.8 |1.4.8 | | -|gclus |1.3.2 |1.3.2 | | -|gdata |2.18.0 |2.18.0 | | -|ggplot2 |3.2.1 |3.2.1 | | -|ggrepel |0.8.1 |0.8.1 | | -|glue |1.3.1 |1.3.1 | | -|gplots |3.0.1.2 |3.0.1.2 | | -|gridExtra |2.3 |2.3 | | -|gtable |0.3.0 |0.3.0 | | -|gtools |3.8.1 |3.8.1 | | -|iterators |1.0.12 |1.0.12 | | -|labeling |0.3 |0.3 | | -|lazyeval |0.2.2 |0.2.2 | | -|lifecycle |0.1.0 |0.1.0 | | -|magrittr |1.5 |1.5 | | -|munsell |0.5.0 |0.5.0 | | -|pillar |1.4.3 |1.4.3 | | -|pkgconfig |2.0.3 |2.0.3 | | -|plogr |0.2.0 |0.2.0 | | -|plyr |1.8.5 |1.8.5 | | -|purrr |0.3.3 |0.3.3 | | -|qap |0.1-1 |0.1-1 | | -|R6 |2.4.1 |2.4.1 | | -|RColorBrewer |1.1-2 |1.1-2 | | -|Rcpp |1.0.3 |1.0.3 | | -|registry |0.5-1 |0.5-1 | | -|reshape2 |1.4.3 |1.4.3 | | -|rlang |0.4.4 |0.4.4 | | -|scales |1.1.0 |1.1.0 | | -|seriation |1.2-8 |1.2-8 | | -|stringi |1.4.5 |1.4.5 | | -|stringr |1.4.0 |1.4.0 | | -|tibble |2.1.3 |2.1.3 | | -|tidyselect |1.0.0 |1.0.0 | | -|TSP |1.1-8 |1.1-8 | | -|utf8 |1.1.4 |1.1.4 | | -|vctrs |0.2.2 |0.2.2 | | -|viridis |0.5.1 |0.5.1 | | -|viridisLite |0.3.0 |0.3.0 | | -|withr |2.1.2 |2.1.2 | | +|package |old |new |Δ | +|:----------|:-----|:------|:--| +|corrr |0.4.1 |0.4.2 |* | +|dendextend |NA |1.13.4 |* | +|ggrepel |NA |0.8.2 |* | +|gplots |NA |3.0.3 |* | +|TSP |NA |1.1-9 |* | # Revdeps From d8250980580f1f17a9ff40fbd6f33dd8bcb4cb1b Mon Sep 17 00:00:00 2001 From: topepo Date: Sat, 21 Mar 2020 16:52:26 -0400 Subject: [PATCH 3/5] pkgdown update --- docs/404.html | 31 ++- docs/LICENSE-text.html | 31 ++- docs/articles/databases.html | 83 +++--- .../figure-html/unnamed-chunk-3-1.png | Bin 45282 -> 118518 bytes .../header-attrs-2.1/header-attrs.js | 12 + docs/articles/index.html | 31 ++- docs/articles/using-corrr.html | 245 +++++++++--------- .../figure-html/unnamed-chunk-6-1.png | Bin 20690 -> 49672 bytes .../figure-html/unnamed-chunk-7-1.png | Bin 20644 -> 49628 bytes .../header-attrs-2.1/header-attrs.js | 12 + docs/authors.html | 31 ++- docs/index.html | 192 +++++++------- docs/news/index.html | 90 ++++--- docs/pkgdown.css | 58 ++++- docs/pkgdown.yml | 7 +- docs/reference/as_cordf.html | 87 ++++--- docs/reference/as_matrix.html | 33 +-- docs/reference/correlate.html | 73 +++--- docs/reference/corrr-package.html | 33 +-- docs/reference/dice.html | 43 +-- docs/reference/fashion.html | 33 +-- docs/reference/first_col.html | 59 +++-- docs/reference/focus.html | 100 ++++--- docs/reference/focus_if-1.png | Bin 64061 -> 95854 bytes docs/reference/focus_if.html | 49 ++-- docs/reference/index.html | 33 +-- docs/reference/network_plot-1.png | Bin 188447 -> 259851 bytes docs/reference/network_plot-2.png | Bin 220758 -> 309462 bytes docs/reference/network_plot-3.png | Bin 115366 -> 161660 bytes docs/reference/network_plot-4.png | Bin 103241 -> 140539 bytes docs/reference/network_plot.html | 33 +-- docs/reference/pair_n.html | 33 +-- docs/reference/rearrange.html | 113 ++++---- docs/reference/retract.html | 61 ++--- docs/reference/rplot-1.png | Bin 45297 -> 118765 bytes docs/reference/rplot-2.png | Bin 36750 -> 86912 bytes docs/reference/rplot-3.png | Bin 73493 -> 128696 bytes docs/reference/rplot-4.png | Bin 65641 -> 99558 bytes docs/reference/rplot.html | 33 +-- docs/reference/shave.html | 87 ++++--- docs/reference/stretch.html | 109 ++++---- 41 files changed, 988 insertions(+), 847 deletions(-) create mode 100644 docs/articles/databases_files/header-attrs-2.1/header-attrs.js create mode 100644 docs/articles/using-corrr_files/header-attrs-2.1/header-attrs.js diff --git a/docs/404.html b/docs/404.html index 4e349cf..63252d6 100644 --- a/docs/404.html +++ b/docs/404.html @@ -8,21 +8,31 @@ Page not found (404) • corrr + + + + + + + + - + - + + - - + + + @@ -39,22 +49,15 @@ - + + - - - @@ -75,7 +78,7 @@ corrr

part of tidymodels - 0.4.1 + 0.4.2
diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 6b6f544..737e8ee 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -8,21 +8,31 @@ License • corrr + + + + + + + + - + - + + - - + + + @@ -39,22 +49,15 @@ - + + - - - @@ -75,7 +78,7 @@ corrr
part of tidymodels - 0.4.1 + 0.4.2
diff --git a/docs/articles/databases.html b/docs/articles/databases.html index 8755a72..4a925dd 100644 --- a/docs/articles/databases.html +++ b/docs/articles/databases.html @@ -6,24 +6,25 @@ Using corrr with databases • corrr - - - + + + + + + + + + + - + - +
@@ -41,7 +42,7 @@ corrr
part of tidymodels - 0.4.1 + 0.4.2
@@ -90,12 +91,12 @@ -
+
@@ -159,7 +160,7 @@

- @@ -90,13 +91,13 @@ -
+

Why a correlation data frame?

At first, a correlation data frame might seem like an unnecessary complexity compared to the traditional matrix. However, the purpose of corrr is to help use explore these correlations, not to do mathematical or statistical operations. Thus, by having the correlations in a data frame, we can make use of packages that help us work with data frames like dplyr, tidyr, ggplot2, and focus on using data pipelines. Lets look at some examples:

- +
library(dplyr)
+
+# Filter rows to occasions in which cyl has a correlation of .7 or more with
+# another variable.
+d %>% filter(cyl > .7)
+#> # A tibble: 3 x 12
+#>   rowname    mpg   cyl   disp     hp   drat     wt   qsec     vs     am   gear
+#>   <chr>    <dbl> <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
+#> 1 disp    -0.848 0.902 NA      0.791 -0.710  0.888 -0.434 -0.710 -0.591 -0.556
+#> 2 hp      -0.776 0.832  0.791 NA     -0.449  0.659 -0.708 -0.723 -0.243 -0.126
+#> 3 wt      -0.868 0.782  0.888  0.659 -0.712 NA     -0.175 -0.555 -0.692 -0.583
+#> # … with 1 more variable: carb <dbl>
+
+# Select the mpg, cyl and disp columns (and rowname)
+d %>% select(rowname, mpg, cyl, disp)
+#> # A tibble: 11 x 4
+#>    rowname    mpg    cyl   disp
+#>    <chr>    <dbl>  <dbl>  <dbl>
+#>  1 mpg     NA     -0.852 -0.848
+#>  2 cyl     -0.852 NA      0.902
+#>  3 disp    -0.848  0.902 NA    
+#>  4 hp      -0.776  0.832  0.791
+#>  5 drat     0.681 -0.700 -0.710
+#>  6 wt      -0.868  0.782  0.888
+#>  7 qsec     0.419 -0.591 -0.434
+#>  8 vs       0.664 -0.811 -0.710
+#>  9 am       0.600 -0.523 -0.591
+#> 10 gear     0.480 -0.493 -0.556
+#> 11 carb    -0.551  0.527  0.395
+
+# Combine above in a single pipeline
+d %>%
+  filter(cyl > .7) %>% 
+  select(rowname, mpg, cyl, disp)
+#> # A tibble: 3 x 4
+#>   rowname    mpg   cyl   disp
+#>   <chr>    <dbl> <dbl>  <dbl>
+#> 1 disp    -0.848 0.902 NA    
+#> 2 hp      -0.776 0.832  0.791
+#> 3 wt      -0.868 0.782  0.888

Furthermore, by having the diagonal set to missing, we don’t need to put in extra effort to ignore them when summarizing the correlations. For example:

- +
# Compute mean of each column
+library(purrr)
+d %>% 
+  select(-rowname) %>% 
+  map_dbl(~ mean(., na.rm = TRUE))
+#>           mpg           cyl          disp            hp          drat 
+#> -0.1050454113 -0.0925483176 -0.0872737071  0.0006800268 -0.0037165212 
+#>            wt          qsec            vs            am          gear 
+#> -0.0828684293 -0.1752247305 -0.1145625942  0.0053087327  0.0484120552 
+#>          carb 
+#>  0.0563419513

API

@@ -221,47 +222,47 @@

By combing these functions in data pipelines, it’s possible to easily explore your correlations.

For example, lets focus on the correlations of mpg and cyl with all the others:

- +
d %>% focus(mpg, cyl)
+#> # A tibble: 9 x 3
+#>   rowname    mpg    cyl
+#>   <chr>    <dbl>  <dbl>
+#> 1 disp    -0.848  0.902
+#> 2 hp      -0.776  0.832
+#> 3 drat     0.681 -0.700
+#> 4 wt      -0.868  0.782
+#> 5 qsec     0.419 -0.591
+#> 6 vs       0.664 -0.811
+#> 7 am       0.600 -0.523
+#> 8 gear     0.480 -0.493
+#> 9 carb    -0.551  0.527

Or maybe we want to focus in on a few variables (mirrored in rows too) and print the correlations without an upper triangle and fashioned to look nice:

-
d %>%
-  focus(mpg:drat, mirror = TRUE) %>%  # Focus only on mpg:drat
-  shave() %>% # Remove the upper triangle
-  fashion()   # Print in nice format 
-#>   rowname  mpg  cyl disp   hp drat
-#> 1     mpg                         
-#> 2     cyl -.85                    
-#> 3    disp -.85  .90               
-#> 4      hp -.78  .83  .79          
-#> 5    drat  .68 -.70 -.71 -.45
+
d %>%
+  focus(mpg:drat, mirror = TRUE) %>%  # Focus only on mpg:drat
+  shave() %>% # Remove the upper triangle
+  fashion()   # Print in nice format 
+#>   rowname  mpg  cyl disp   hp drat
+#> 1     mpg                         
+#> 2     cyl -.85                    
+#> 3    disp -.85  .90               
+#> 4      hp -.78  .83  .79          
+#> 5    drat  .68 -.70 -.71 -.45

Alternatively, we can visualize these correlations (let’s clear the lower triangle for a change):

- +
d %>%
+  focus(mpg:drat, mirror = TRUE) %>%
+  shave(upper = FALSE) %>%
+  rplot()     # Plot
+#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.

Perhaps we’d like to rearrange the correlations so that the plot becomes easier to interpret. In this case, we can add rearrange() into our pipeline before shaving one of the triangles (we’ll take correlation sign into account with absolute = FALSE).

- +
d %>%
+  focus(mpg:drat, mirror = TRUE) %>%
+  rearrange(absolute = FALSE) %>% 
+  shave() %>%
+  rplot()
+#> Registered S3 method overwritten by 'seriation':
+#>   method         from 
+#>   reorder.hclust gclus
+#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.

@@ -272,7 +273,7 @@

- @@ -97,9 +98,9 @@
-
+

corrr is a package for exploring correlations in R. It focuses on creating and working with data frames of correlations (instead of matrices) that can be easily explored via corrr functions or by leveraging tools like those in the tidyverse. This, along with the primary corrr functions, is represented below:

@@ -108,12 +109,12 @@
  • the latest released version from CRAN with
- +
# install.packages("corrr")
  • the latest development version from GitHub with
- +
# install.packages("remotes") 
+# remotes::install_github("tidymodels/corrr")

Using corrr

@@ -161,92 +162,92 @@

Examples

- +
library(MASS)
+library(corrr)
+set.seed(1)
+
+# Simulate three columns correlating about .7 with each other
+mu <- rep(0, 3)
+Sigma <- matrix(.7, nrow = 3, ncol = 3) + diag(3)*.3
+seven <- mvrnorm(n = 1000, mu = mu, Sigma = Sigma)
+
+# Simulate three columns correlating about .4 with each other
+mu <- rep(0, 3)
+Sigma <- matrix(.4, nrow = 3, ncol = 3) + diag(3)*.6
+four <- mvrnorm(n = 1000, mu = mu, Sigma = Sigma)
+
+# Bind together
+d <- cbind(seven, four)
+colnames(d) <- paste0("v", 1:ncol(d))
+
+# Insert some missing values
+d[sample(1:nrow(d), 100, replace = TRUE), 1] <- NA
+d[sample(1:nrow(d), 200, replace = TRUE), 5] <- NA
+
+# Correlate
+x <- correlate(d)
+class(x)
+#> [1] "cor_df"     "tbl_df"     "tbl"        "data.frame"
+x
+#> # A tibble: 6 x 7
+#>   rowname       v1      v2      v3      v4       v5      v6
+#>   <chr>      <dbl>   <dbl>   <dbl>   <dbl>    <dbl>   <dbl>
+#> 1 v1      NA        0.696   0.705   0.0137  0.00906 -0.0467
+#> 2 v2       0.696   NA       0.697  -0.0133  0.0221  -0.0338
+#> 3 v3       0.705    0.697  NA      -0.0253 -0.0166  -0.0201
+#> 4 v4       0.0137  -0.0133 -0.0253 NA       0.452    0.442 
+#> 5 v5       0.00906  0.0221 -0.0166  0.452  NA        0.425 
+#> 6 v6      -0.0467  -0.0338 -0.0201  0.442   0.425   NA

As a tbl, we can use functions from data frame packages like dplyr, tidyr, ggplot2:

- +
library(dplyr)
+
+# Filter rows by correlation size
+x %>% filter(v1 > .6)
+#> # A tibble: 2 x 7
+#>   rowname    v1     v2     v3      v4      v5      v6
+#>   <chr>   <dbl>  <dbl>  <dbl>   <dbl>   <dbl>   <dbl>
+#> 1 v2      0.696 NA      0.697 -0.0133  0.0221 -0.0338
+#> 2 v3      0.705  0.697 NA     -0.0253 -0.0166 -0.0201

corrr functions work in pipelines (cor_df in; cor_df or tbl out):

- +
x <- datasets::mtcars %>%
+       correlate() %>%    # Create correlation data frame (cor_df)
+       focus(-cyl, -vs, mirror = TRUE) %>%  # Focus on cor_df without 'cyl' and 'vs'
+       rearrange() %>%  # rearrange by correlations
+       shave() # Shave off the upper triangle for a clean result
+#> 
+#> Correlation method: 'pearson'
+#> Missing treated using: 'pairwise.complete.obs'
+#> Registered S3 method overwritten by 'seriation':
+#>   method         from 
+#>   reorder.hclust gclus
+       
+fashion(x)
+#>   rowname  mpg drat   am gear qsec carb   hp   wt disp
+#> 1     mpg                                             
+#> 2    drat  .68                                        
+#> 3      am  .60  .71                                   
+#> 4    gear  .48  .70  .79                              
+#> 5    qsec  .42  .09 -.23 -.21                         
+#> 6    carb -.55 -.09  .06  .27 -.66                    
+#> 7      hp -.78 -.45 -.24 -.13 -.71  .75               
+#> 8      wt -.87 -.71 -.69 -.58 -.17  .43  .66          
+#> 9    disp -.85 -.71 -.59 -.56 -.43  .39  .79  .89
+rplot(x)
+#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.

- +

+datasets::airquality %>% 
+  correlate() %>% 
+  network_plot(min_cor = .2)
+#> 
+#> Correlation method: 'pearson'
+#> Missing treated using: 'pairwise.complete.obs'

-
@@ -131,17 +134,25 @@

Changelog

Source: NEWS.md
-
+
+

+corrr 0.4.2 Unreleased +

+
    +
  • Updates to work with tibble 3.0.0 and dplyr 1.0.0
  • +
+
+

-corrr 0.4.1 Unreleased +corrr 0.4.1 2020-02-10

  • Updates maintainer
-
+

-corrr 0.4.0 2019-07-12 +corrr 0.4.0 2019-07-12

  • Adds remove.dups argument to stretch(). It removes duplicates with out removing all NAs (#57)

  • @@ -151,9 +162,9 @@

  • Fixes compatibility issues with dplyr

-
+

-corrr 0.3.2 2019-04-20 +corrr 0.3.2 2019-04-20

  • Improves support for tbl_sql() objects

  • @@ -164,18 +175,18 @@

  • Minor updates to Using corrr vignette

-
+

-corrr 0.3.1 2019-03-06 +corrr 0.3.1 2019-03-06

  • Fixes test and CRAN issues by removing Ops.cor_df().

  • Designates Edgar Ruiz as the new package maintainer

-
+

-corrr 0.3.0 2018-07-31 +corrr 0.3.0 2018-07-31

@@ -225,9 +236,9 @@

-
+

-corrr 0.2.1 2016-10-10 +corrr 0.2.1 2016-10-10

@@ -255,9 +266,9 @@

-
+

-corrr 0.2.0 2016-08-11 +corrr 0.2.0 2016-08-11

@@ -290,9 +301,9 @@

-
+

-corrr 0.1.0 2016-07-08 +corrr 0.1.0 2016-07-08

  • First corrr release!
  • @@ -300,18 +311,19 @@

-
@@ -163,37 +166,37 @@

Value

Examples

x <- cor(mtcars) -as_cordf(x)
#> # A tibble: 11 x 12 +as_cordf(x)
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 -#> 2 cyl -0.852 NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -#> 3 disp -0.848 0.902 NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -#> 4 hp -0.776 0.832 0.791 NA -0.449 0.659 -0.708 -0.723 -0.243 -#> 5 drat 0.681 -0.700 -0.710 -0.449 NA -0.712 0.0912 0.440 0.713 -#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA -0.175 -0.555 -0.692 -#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA 0.745 -0.230 -#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA 0.168 -#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA -#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 -#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 -#> # … with 2 more variables: gear <dbl>, carb <dbl>
as_cordf(x, diagonal = 1)
#> # A tibble: 11 x 12 +#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 +#> 2 cyl -0.852 NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 +#> 3 disp -0.848 0.902 NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 +#> 4 hp -0.776 0.832 0.791 NA -0.449 0.659 -0.708 -0.723 -0.243 +#> 5 drat 0.681 -0.700 -0.710 -0.449 NA -0.712 0.0912 0.440 0.713 +#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA -0.175 -0.555 -0.692 +#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA 0.745 -0.230 +#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA 0.168 +#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA +#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 +#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 +#> # … with 2 more variables: gear <dbl>, carb <dbl>
as_cordf(x, diagonal = 1)
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg 1 -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 -#> 2 cyl -0.852 1 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -#> 3 disp -0.848 0.902 1 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -#> 4 hp -0.776 0.832 0.791 1 -0.449 0.659 -0.708 -0.723 -0.243 -#> 5 drat 0.681 -0.700 -0.710 -0.449 1 -0.712 0.0912 0.440 0.713 -#> 6 wt -0.868 0.782 0.888 0.659 -0.712 1 -0.175 -0.555 -0.692 -#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 1 0.745 -0.230 -#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 1 0.168 -#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 1 -#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 -#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 -#> # … with 2 more variables: gear <dbl>, carb <dbl>
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg 1 -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 +#> 2 cyl -0.852 1 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 +#> 3 disp -0.848 0.902 1 0.791 -0.710 0.888 -0.434 -0.710 -0.591 +#> 4 hp -0.776 0.832 0.791 1 -0.449 0.659 -0.708 -0.723 -0.243 +#> 5 drat 0.681 -0.700 -0.710 -0.449 1 -0.712 0.0912 0.440 0.713 +#> 6 wt -0.868 0.782 0.888 0.659 -0.712 1 -0.175 -0.555 -0.692 +#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 1 0.745 -0.230 +#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 1 0.168 +#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 1 +#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 +#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 +#> # … with 2 more variables: gear <dbl>, carb <dbl>
- @@ -184,7 +187,7 @@

Examp #> gear -0.21268223 0.2060233 0.79405876 NA 0.27407284 #> carb -0.65624923 -0.5696071 0.05753435 0.2740728 NA

- @@ -211,30 +214,30 @@

Examp correlate(iris[-5])

#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 4 x 5 +#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 4 x 5 #> rowname Sepal.Length Sepal.Width Petal.Length Petal.Width -#> <chr> <dbl> <dbl> <dbl> <dbl> -#> 1 Sepal.Length NA -0.118 0.872 0.818 -#> 2 Sepal.Width -0.118 NA -0.428 -0.366 -#> 3 Petal.Length 0.872 -0.428 NA 0.963 -#> 4 Petal.Width 0.818 -0.366 0.963 NA
+#> <chr> <dbl> <dbl> <dbl> <dbl> +#> 1 Sepal.Length NA -0.118 0.872 0.818 +#> 2 Sepal.Width -0.118 NA -0.428 -0.366 +#> 3 Petal.Length 0.872 -0.428 NA 0.963 +#> 4 Petal.Width 0.818 -0.366 0.963 NA
correlate(mtcars)
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 11 x 12 +#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 -#> 2 cyl -0.852 NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -#> 3 disp -0.848 0.902 NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -#> 4 hp -0.776 0.832 0.791 NA -0.449 0.659 -0.708 -0.723 -0.243 -#> 5 drat 0.681 -0.700 -0.710 -0.449 NA -0.712 0.0912 0.440 0.713 -#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA -0.175 -0.555 -0.692 -#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA 0.745 -0.230 -#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA 0.168 -#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA -#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 -#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 -#> # … with 2 more variables: gear <dbl>, carb <dbl>
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 +#> 2 cyl -0.852 NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 +#> 3 disp -0.848 0.902 NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 +#> 4 hp -0.776 0.832 0.791 NA -0.449 0.659 -0.708 -0.723 -0.243 +#> 5 drat 0.681 -0.700 -0.710 -0.449 NA -0.712 0.0912 0.440 0.713 +#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA -0.175 -0.555 -0.692 +#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA 0.745 -0.230 +#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA 0.168 +#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA +#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 +#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 +#> # … with 2 more variables: gear <dbl>, carb <dbl>
if (FALSE) { # Also supports DB backend and collects results into memory @@ -248,7 +251,7 @@

Examp }

- @@ -161,7 +164,7 @@

See a

- @@ -157,15 +160,15 @@

Examp
dice(correlate(mtcars), mpg, wt, am)
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 3 x 4 +#> Missing treated using: 'pairwise.complete.obs'
#> # A tibble: 3 x 4 #> rowname mpg wt am -#> <chr> <dbl> <dbl> <dbl> -#> 1 mpg NA -0.868 0.600 -#> 2 wt -0.868 NA -0.692 -#> 3 am 0.600 -0.692 NA
+#> <chr> <dbl> <dbl> <dbl> +#> 1 mpg NA -0.868 0.600 +#> 2 wt -0.868 NA -0.692 +#> 3 am 0.600 -0.692 NA

- @@ -263,7 +266,7 @@

Examp #> 31 15.000 8.000 301.000 335.000 3.540 3.570 14.600 .000 1.000 5.000 8.000 #> 32 21.400 4.000 121.000 109.000 4.110 2.780 18.600 1.000 1.000 4.000 2.000

c(0.234, 134.23, -.23, NA) %>% fashion(na_print = "X")
#> [1] .23 134.23 -.23 X
- @@ -160,22 +163,22 @@

Arg

Examples

-
first_col(mtcars, 1:nrow(mtcars))
#> # A tibble: 32 x 12 +
first_col(mtcars, 1:nrow(mtcars))
#> # A tibble: 32 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am gear carb -#> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 -#> 2 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 -#> 3 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 -#> 4 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 -#> 5 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 -#> 6 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 -#> 7 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 -#> 8 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 -#> 9 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 -#> 10 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 -#> # … with 22 more rows
+#>
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 +#> 2 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 +#> 3 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 +#> 4 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 +#> 5 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 +#> 6 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 +#> 7 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 +#> 8 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 +#> 9 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 +#> 10 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 +#> # … with 22 more rows
- @@ -162,20 +165,9 @@

Arg ... -

One or more unquoted expressions separated by commas. -You can treat variable names like they are positions, so you can -use expressions like x:y to select ranges of variables.

-

Positive values select variables; negative values drop variables. -If the first expression is negative, select() will automatically -start with all variables.

-

Use named arguments, e.g. new_name = old_name, to rename selected variables.

-

The arguments in ... are automatically quoted and -evaluated in a context where column names -represent column positions. They also support -unquoting and splicing. See -vignette("programming") for an introduction to these concepts.

-

See select helpers for more details and -examples about tidyselect helpers such as starts_with(), everything(), ...

+

One or more unquoted expressions separated by commas. Variable +names can be used as if they were positions in the data frame, so +expressions like `x:y`` can be used to select a range of variables.

mirror @@ -196,39 +188,39 @@

Examp
library(dplyr) x <- correlate(mtcars)
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
focus(x, mpg, cyl) # Focus on correlations of mpg and cyl with all other variables
#> # A tibble: 9 x 3 +#> Missing treated using: 'pairwise.complete.obs'
focus(x, mpg, cyl) # Focus on correlations of mpg and cyl with all other variables
#> # A tibble: 9 x 3 #> rowname mpg cyl -#> <chr> <dbl> <dbl> -#> 1 disp -0.848 0.902 -#> 2 hp -0.776 0.832 -#> 3 drat 0.681 -0.700 -#> 4 wt -0.868 0.782 -#> 5 qsec 0.419 -0.591 -#> 6 vs 0.664 -0.811 -#> 7 am 0.600 -0.523 -#> 8 gear 0.480 -0.493 -#> 9 carb -0.551 0.527
focus(x, -disp, - mpg, mirror = TRUE) # Remove disp and mpg from columns and rows
#> # A tibble: 9 x 10 +#> <chr> <dbl> <dbl> +#> 1 disp -0.848 0.902 +#> 2 hp -0.776 0.832 +#> 3 drat 0.681 -0.700 +#> 4 wt -0.868 0.782 +#> 5 qsec 0.419 -0.591 +#> 6 vs 0.664 -0.811 +#> 7 am 0.600 -0.523 +#> 8 gear 0.480 -0.493 +#> 9 carb -0.551 0.527
focus(x, -disp, - mpg, mirror = TRUE) # Remove disp and mpg from columns and rows
#> # A tibble: 9 x 10 #> rowname cyl hp drat wt qsec vs am gear carb -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 cyl NA 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -0.493 0.527 -#> 2 hp 0.832 NA -0.449 0.659 -0.708 -0.723 -0.243 -0.126 0.750 -#> 3 drat -0.700 -0.449 NA -0.712 0.0912 0.440 0.713 0.700 -0.0908 -#> 4 wt 0.782 0.659 -0.712 NA -0.175 -0.555 -0.692 -0.583 0.428 -#> 5 qsec -0.591 -0.708 0.0912 -0.175 NA 0.745 -0.230 -0.213 -0.656 -#> 6 vs -0.811 -0.723 0.440 -0.555 0.745 NA 0.168 0.206 -0.570 -#> 7 am -0.523 -0.243 0.713 -0.692 -0.230 0.168 NA 0.794 0.0575 -#> 8 gear -0.493 -0.126 0.700 -0.583 -0.213 0.206 0.794 NA 0.274 -#> 9 carb 0.527 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 0.274 NA
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 cyl NA 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -0.493 0.527 +#> 2 hp 0.832 NA -0.449 0.659 -0.708 -0.723 -0.243 -0.126 0.750 +#> 3 drat -0.700 -0.449 NA -0.712 0.0912 0.440 0.713 0.700 -0.0908 +#> 4 wt 0.782 0.659 -0.712 NA -0.175 -0.555 -0.692 -0.583 0.428 +#> 5 qsec -0.591 -0.708 0.0912 -0.175 NA 0.745 -0.230 -0.213 -0.656 +#> 6 vs -0.811 -0.723 0.440 -0.555 0.745 NA 0.168 0.206 -0.570 +#> 7 am -0.523 -0.243 0.713 -0.692 -0.230 0.168 NA 0.794 0.0575 +#> 8 gear -0.493 -0.126 0.700 -0.583 -0.213 0.206 0.794 NA 0.274 +#> 9 carb 0.527 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 0.274 NA
x <- correlate(iris[-5])
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
focus(x, -matches("Sepal")) # Focus on correlations of non-Sepal
#> # A tibble: 2 x 3 +#> Missing treated using: 'pairwise.complete.obs'
focus(x, -matches("Sepal")) # Focus on correlations of non-Sepal
#> # A tibble: 2 x 3 #> rowname Petal.Length Petal.Width -#> <chr> <dbl> <dbl> -#> 1 Sepal.Length 0.872 0.818 -#> 2 Sepal.Width -0.428 -0.366
# variables with Sepal variables. +#> <chr> <dbl> <dbl> +#> 1 Sepal.Length 0.872 0.818 +#> 2 Sepal.Width -0.428 -0.366
# variables with Sepal variables.
- @@ -179,17 +182,17 @@

Examp x <- correlate(mtcars)
#> #> Correlation method: 'pearson' #> Missing treated using: 'pairwise.complete.obs'
-x %>% focus_if(any_greater_than, .6)
#> # A tibble: 6 x 6 +x %>% focus_if(any_greater_than, .6)
#> # A tibble: 6 x 6 #> rowname mpg cyl disp hp wt -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 drat 0.681 -0.700 -0.710 -0.449 -0.712 -#> 2 qsec 0.419 -0.591 -0.434 -0.708 -0.175 -#> 3 vs 0.664 -0.811 -0.710 -0.723 -0.555 -#> 4 am 0.600 -0.523 -0.591 -0.243 -0.692 -#> 5 gear 0.480 -0.493 -0.556 -0.126 -0.583 -#> 6 carb -0.551 0.527 0.395 0.750 0.428
x %>% focus_if(any_greater_than, .6, mirror = TRUE) %>% network_plot()
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 drat 0.681 -0.700 -0.710 -0.449 -0.712 +#> 2 qsec 0.419 -0.591 -0.434 -0.708 -0.175 +#> 3 vs 0.664 -0.811 -0.710 -0.723 -0.555 +#> 4 am 0.600 -0.523 -0.591 -0.243 -0.692 +#> 5 gear 0.480 -0.493 -0.556 -0.126 -0.583 +#> 6 carb -0.551 0.527 0.395 0.750 0.428
x %>% focus_if(any_greater_than, .6, mirror = TRUE) %>% network_plot()
- @@ -240,7 +243,7 @@

+ @@ -195,7 +198,7 @@

Examp #> Correlation method: 'pearson' #> Missing treated using: 'pairwise.complete.obs'
network_plot(x)
network_plot(x, min_cor = .1)
network_plot(x, min_cor = .6)
network_plot(x, min_cor = .7, colors = c("red", "green"), legend = TRUE)
- @@ -176,7 +179,7 @@

Examp #> attr(,"class") #> [1] "n_mat" "matrix" - @@ -171,51 +174,51 @@

Examp #> Missing treated using: 'pairwise.complete.obs'
rearrange(x) # Default settings
#> Registered S3 method overwritten by 'seriation': #> method from -#> reorder.hclust gclus
#> # A tibble: 11 x 12 +#> reorder.hclust gclus
#> # A tibble: 11 x 12 #> rowname mpg vs drat am gear qsec carb hp wt -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA 0.664 0.681 0.600 0.480 0.419 -0.551 -0.776 -0.868 -#> 2 vs 0.664 NA 0.440 0.168 0.206 0.745 -0.570 -0.723 -0.555 -#> 3 drat 0.681 0.440 NA 0.713 0.700 0.0912 -0.0908 -0.449 -0.712 -#> 4 am 0.600 0.168 0.713 NA 0.794 -0.230 0.0575 -0.243 -0.692 -#> 5 gear 0.480 0.206 0.700 0.794 NA -0.213 0.274 -0.126 -0.583 -#> 6 qsec 0.419 0.745 0.0912 -0.230 -0.213 NA -0.656 -0.708 -0.175 -#> 7 carb -0.551 -0.570 -0.0908 0.0575 0.274 -0.656 NA 0.750 0.428 -#> 8 hp -0.776 -0.723 -0.449 -0.243 -0.126 -0.708 0.750 NA 0.659 -#> 9 wt -0.868 -0.555 -0.712 -0.692 -0.583 -0.175 0.428 0.659 NA -#> 10 disp -0.848 -0.710 -0.710 -0.591 -0.556 -0.434 0.395 0.791 0.888 -#> 11 cyl -0.852 -0.811 -0.700 -0.523 -0.493 -0.591 0.527 0.832 0.782 -#> # … with 2 more variables: disp <dbl>, cyl <dbl>
rearrange(x, method = "HC") # Different seriation method
#> # A tibble: 11 x 12 +#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA 0.664 0.681 0.600 0.480 0.419 -0.551 -0.776 -0.868 +#> 2 vs 0.664 NA 0.440 0.168 0.206 0.745 -0.570 -0.723 -0.555 +#> 3 drat 0.681 0.440 NA 0.713 0.700 0.0912 -0.0908 -0.449 -0.712 +#> 4 am 0.600 0.168 0.713 NA 0.794 -0.230 0.0575 -0.243 -0.692 +#> 5 gear 0.480 0.206 0.700 0.794 NA -0.213 0.274 -0.126 -0.583 +#> 6 qsec 0.419 0.745 0.0912 -0.230 -0.213 NA -0.656 -0.708 -0.175 +#> 7 carb -0.551 -0.570 -0.0908 0.0575 0.274 -0.656 NA 0.750 0.428 +#> 8 hp -0.776 -0.723 -0.449 -0.243 -0.126 -0.708 0.750 NA 0.659 +#> 9 wt -0.868 -0.555 -0.712 -0.692 -0.583 -0.175 0.428 0.659 NA +#> 10 disp -0.848 -0.710 -0.710 -0.591 -0.556 -0.434 0.395 0.791 0.888 +#> 11 cyl -0.852 -0.811 -0.700 -0.523 -0.493 -0.591 0.527 0.832 0.782 +#> # … with 2 more variables: disp <dbl>, cyl <dbl>
rearrange(x, method = "HC") # Different seriation method
#> # A tibble: 11 x 12 #> rowname carb hp wt cyl disp drat am gear qsec -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 carb NA 0.750 0.428 0.527 0.395 -0.0908 0.0575 0.274 -0.656 -#> 2 hp 0.750 NA 0.659 0.832 0.791 -0.449 -0.243 -0.126 -0.708 -#> 3 wt 0.428 0.659 NA 0.782 0.888 -0.712 -0.692 -0.583 -0.175 -#> 4 cyl 0.527 0.832 0.782 NA 0.902 -0.700 -0.523 -0.493 -0.591 -#> 5 disp 0.395 0.791 0.888 0.902 NA -0.710 -0.591 -0.556 -0.434 -#> 6 drat -0.0908 -0.449 -0.712 -0.700 -0.710 NA 0.713 0.700 0.0912 -#> 7 am 0.0575 -0.243 -0.692 -0.523 -0.591 0.713 NA 0.794 -0.230 -#> 8 gear 0.274 -0.126 -0.583 -0.493 -0.556 0.700 0.794 NA -0.213 -#> 9 qsec -0.656 -0.708 -0.175 -0.591 -0.434 0.0912 -0.230 -0.213 NA -#> 10 mpg -0.551 -0.776 -0.868 -0.852 -0.848 0.681 0.600 0.480 0.419 -#> 11 vs -0.570 -0.723 -0.555 -0.811 -0.710 0.440 0.168 0.206 0.745 -#> # … with 2 more variables: mpg <dbl>, vs <dbl>
rearrange(x, absolute = FALSE) # Not using absolute values for arranging
#> # A tibble: 11 x 12 +#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 carb NA 0.750 0.428 0.527 0.395 -0.0908 0.0575 0.274 -0.656 +#> 2 hp 0.750 NA 0.659 0.832 0.791 -0.449 -0.243 -0.126 -0.708 +#> 3 wt 0.428 0.659 NA 0.782 0.888 -0.712 -0.692 -0.583 -0.175 +#> 4 cyl 0.527 0.832 0.782 NA 0.902 -0.700 -0.523 -0.493 -0.591 +#> 5 disp 0.395 0.791 0.888 0.902 NA -0.710 -0.591 -0.556 -0.434 +#> 6 drat -0.0908 -0.449 -0.712 -0.700 -0.710 NA 0.713 0.700 0.0912 +#> 7 am 0.0575 -0.243 -0.692 -0.523 -0.591 0.713 NA 0.794 -0.230 +#> 8 gear 0.274 -0.126 -0.583 -0.493 -0.556 0.700 0.794 NA -0.213 +#> 9 qsec -0.656 -0.708 -0.175 -0.591 -0.434 0.0912 -0.230 -0.213 NA +#> 10 mpg -0.551 -0.776 -0.868 -0.852 -0.848 0.681 0.600 0.480 0.419 +#> 11 vs -0.570 -0.723 -0.555 -0.811 -0.710 0.440 0.168 0.206 0.745 +#> # … with 2 more variables: mpg <dbl>, vs <dbl>
rearrange(x, absolute = FALSE) # Not using absolute values for arranging
#> # A tibble: 11 x 12 #> rowname mpg vs drat am gear qsec carb hp wt -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA 0.664 0.681 0.600 0.480 0.419 -0.551 -0.776 -0.868 -#> 2 vs 0.664 NA 0.440 0.168 0.206 0.745 -0.570 -0.723 -0.555 -#> 3 drat 0.681 0.440 NA 0.713 0.700 0.0912 -0.0908 -0.449 -0.712 -#> 4 am 0.600 0.168 0.713 NA 0.794 -0.230 0.0575 -0.243 -0.692 -#> 5 gear 0.480 0.206 0.700 0.794 NA -0.213 0.274 -0.126 -0.583 -#> 6 qsec 0.419 0.745 0.0912 -0.230 -0.213 NA -0.656 -0.708 -0.175 -#> 7 carb -0.551 -0.570 -0.0908 0.0575 0.274 -0.656 NA 0.750 0.428 -#> 8 hp -0.776 -0.723 -0.449 -0.243 -0.126 -0.708 0.750 NA 0.659 -#> 9 wt -0.868 -0.555 -0.712 -0.692 -0.583 -0.175 0.428 0.659 NA -#> 10 disp -0.848 -0.710 -0.710 -0.591 -0.556 -0.434 0.395 0.791 0.888 -#> 11 cyl -0.852 -0.811 -0.700 -0.523 -0.493 -0.591 0.527 0.832 0.782 -#> # … with 2 more variables: disp <dbl>, cyl <dbl>
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA 0.664 0.681 0.600 0.480 0.419 -0.551 -0.776 -0.868 +#> 2 vs 0.664 NA 0.440 0.168 0.206 0.745 -0.570 -0.723 -0.555 +#> 3 drat 0.681 0.440 NA 0.713 0.700 0.0912 -0.0908 -0.449 -0.712 +#> 4 am 0.600 0.168 0.713 NA 0.794 -0.230 0.0575 -0.243 -0.692 +#> 5 gear 0.480 0.206 0.700 0.794 NA -0.213 0.274 -0.126 -0.583 +#> 6 qsec 0.419 0.745 0.0912 -0.230 -0.213 NA -0.656 -0.708 -0.175 +#> 7 carb -0.551 -0.570 -0.0908 0.0575 0.274 -0.656 NA 0.750 0.428 +#> 8 hp -0.776 -0.723 -0.449 -0.243 -0.126 -0.708 0.750 NA 0.659 +#> 9 wt -0.868 -0.555 -0.712 -0.692 -0.583 -0.175 0.428 0.659 NA +#> 10 disp -0.848 -0.710 -0.710 -0.591 -0.556 -0.434 0.395 0.791 0.888 +#> 11 cyl -0.852 -0.811 -0.700 -0.523 -0.493 -0.591 0.527 0.832 0.782 +#> # … with 2 more variables: disp <dbl>, cyl <dbl> - @@ -165,23 +168,23 @@

Examp
x <- correlate(mtcars)
#> #> Correlation method: 'pearson' #> Missing treated using: 'pairwise.complete.obs'
xs <- stretch(x) -retract(xs)
#> # A tibble: 11 x 12 +retract(xs)
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 -#> 2 cyl -0.852 NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -#> 3 disp -0.848 0.902 NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -#> 4 hp -0.776 0.832 0.791 NA -0.449 0.659 -0.708 -0.723 -0.243 -#> 5 drat 0.681 -0.700 -0.710 -0.449 NA -0.712 0.0912 0.440 0.713 -#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA -0.175 -0.555 -0.692 -#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA 0.745 -0.230 -#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA 0.168 -#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA -#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 -#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 -#> # … with 2 more variables: gear <dbl>, carb <dbl>
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg 0 -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 +#> 2 cyl -0.852 0 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 +#> 3 disp -0.848 0.902 0 0.791 -0.710 0.888 -0.434 -0.710 -0.591 +#> 4 hp -0.776 0.832 0.791 0 -0.449 0.659 -0.708 -0.723 -0.243 +#> 5 drat 0.681 -0.700 -0.710 -0.449 0 -0.712 0.0912 0.440 0.713 +#> 6 wt -0.868 0.782 0.888 0.659 -0.712 0 -0.175 -0.555 -0.692 +#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 0 0.745 -0.230 +#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 0 0.168 +#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 0 +#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 +#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 +#> # … with 2 more variables: gear <dbl>, carb <dbl> - @@ -185,7 +188,7 @@

Examp x <- shave(x) rplot(x)
#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.
rplot(x, print_cor = TRUE)
#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.
#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.
rplot(x, shape = 20, colors = c("red", "green"), legend = TRUE)
#> Don't know how to automatically pick scale for object of type noquote. Defaulting to continuous.
- @@ -162,37 +165,37 @@

Value

Examples

x <- correlate(mtcars)
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
shave(x) # Default; shave upper triangle
#> # A tibble: 11 x 12 +#> Missing treated using: 'pairwise.complete.obs'
shave(x) # Default; shave upper triangle
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA NA NA NA NA NA NA NA NA -#> 2 cyl -0.852 NA NA NA NA NA NA NA NA -#> 3 disp -0.848 0.902 NA NA NA NA NA NA NA -#> 4 hp -0.776 0.832 0.791 NA NA NA NA NA NA -#> 5 drat 0.681 -0.700 -0.710 -0.449 NA NA NA NA NA -#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA NA NA NA -#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA NA NA -#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA NA -#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA -#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 -#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 -#> # … with 2 more variables: gear <dbl>, carb <dbl>
shave(x, upper = FALSE) # shave lower triangle
#> # A tibble: 11 x 12 +#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA NA NA NA NA NA NA NA NA +#> 2 cyl -0.852 NA NA NA NA NA NA NA NA +#> 3 disp -0.848 0.902 NA NA NA NA NA NA NA +#> 4 hp -0.776 0.832 0.791 NA NA NA NA NA NA +#> 5 drat 0.681 -0.700 -0.710 -0.449 NA NA NA NA NA +#> 6 wt -0.868 0.782 0.888 0.659 -0.712 NA NA NA NA +#> 7 qsec 0.419 -0.591 -0.434 -0.708 0.0912 -0.175 NA NA NA +#> 8 vs 0.664 -0.811 -0.710 -0.723 0.440 -0.555 0.745 NA NA +#> 9 am 0.600 -0.523 -0.591 -0.243 0.713 -0.692 -0.230 0.168 NA +#> 10 gear 0.480 -0.493 -0.556 -0.126 0.700 -0.583 -0.213 0.206 0.794 +#> 11 carb -0.551 0.527 0.395 0.750 -0.0908 0.428 -0.656 -0.570 0.0575 +#> # … with 2 more variables: gear <dbl>, carb <dbl>
shave(x, upper = FALSE) # shave lower triangle
#> # A tibble: 11 x 12 #> rowname mpg cyl disp hp drat wt qsec vs am gear -#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> -#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 0.480 -#> 2 cyl NA NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -0.493 -#> 3 disp NA NA NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -0.556 -#> 4 hp NA NA NA NA -0.449 0.659 -0.708 -0.723 -0.243 -0.126 -#> 5 drat NA NA NA NA NA -0.712 0.0912 0.440 0.713 0.700 -#> 6 wt NA NA NA NA NA NA -0.175 -0.555 -0.692 -0.583 -#> 7 qsec NA NA NA NA NA NA NA 0.745 -0.230 -0.213 -#> 8 vs NA NA NA NA NA NA NA NA 0.168 0.206 -#> 9 am NA NA NA NA NA NA NA NA NA 0.794 -#> 10 gear NA NA NA NA NA NA NA NA NA NA -#> 11 carb NA NA NA NA NA NA NA NA NA NA -#> # … with 1 more variable: carb <dbl>
+#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +#> 1 mpg NA -0.852 -0.848 -0.776 0.681 -0.868 0.419 0.664 0.600 0.480 +#> 2 cyl NA NA 0.902 0.832 -0.700 0.782 -0.591 -0.811 -0.523 -0.493 +#> 3 disp NA NA NA 0.791 -0.710 0.888 -0.434 -0.710 -0.591 -0.556 +#> 4 hp NA NA NA NA -0.449 0.659 -0.708 -0.723 -0.243 -0.126 +#> 5 drat NA NA NA NA NA -0.712 0.0912 0.440 0.713 0.700 +#> 6 wt NA NA NA NA NA NA -0.175 -0.555 -0.692 -0.583 +#> 7 qsec NA NA NA NA NA NA NA 0.745 -0.230 -0.213 +#> 8 vs NA NA NA NA NA NA NA NA 0.168 0.206 +#> 9 am NA NA NA NA NA NA NA NA NA 0.794 +#> 10 gear NA NA NA NA NA NA NA NA NA NA +#> 11 carb NA NA NA NA NA NA NA NA NA NA +#> # … with 1 more variable: carb <dbl> - @@ -169,51 +172,51 @@

Value

Examples

x <- correlate(mtcars)
#> #> Correlation method: 'pearson' -#> Missing treated using: 'pairwise.complete.obs'
stretch(x) # Convert all to long format
#> # A tibble: 121 x 3 +#> Missing treated using: 'pairwise.complete.obs'
stretch(x) # Convert all to long format
#> # A tibble: 121 x 3 #> x y r -#> <chr> <chr> <dbl> -#> 1 mpg mpg NA -#> 2 mpg cyl -0.852 -#> 3 mpg disp -0.848 -#> 4 mpg hp -0.776 -#> 5 mpg drat 0.681 -#> 6 mpg wt -0.868 -#> 7 mpg qsec 0.419 -#> 8 mpg vs 0.664 -#> 9 mpg am 0.600 -#> 10 mpg gear 0.480 -#> # … with 111 more rows
stretch(x, na.rm = FALSE) # omit NAs (diagonal in this case)
#> # A tibble: 121 x 3 +#> <chr> <chr> <dbl> +#> 1 mpg mpg NA +#> 2 mpg cyl -0.852 +#> 3 mpg disp -0.848 +#> 4 mpg hp -0.776 +#> 5 mpg drat 0.681 +#> 6 mpg wt -0.868 +#> 7 mpg qsec 0.419 +#> 8 mpg vs 0.664 +#> 9 mpg am 0.600 +#> 10 mpg gear 0.480 +#> # … with 111 more rows
stretch(x, na.rm = FALSE) # omit NAs (diagonal in this case)
#> # A tibble: 121 x 3 #> x y r -#> <chr> <chr> <dbl> -#> 1 mpg mpg NA -#> 2 mpg cyl -0.852 -#> 3 mpg disp -0.848 -#> 4 mpg hp -0.776 -#> 5 mpg drat 0.681 -#> 6 mpg wt -0.868 -#> 7 mpg qsec 0.419 -#> 8 mpg vs 0.664 -#> 9 mpg am 0.600 -#> 10 mpg gear 0.480 -#> # … with 111 more rows
+#> <chr> <chr> <dbl> +#> 1 mpg mpg NA +#> 2 mpg cyl -0.852 +#> 3 mpg disp -0.848 +#> 4 mpg hp -0.776 +#> 5 mpg drat 0.681 +#> 6 mpg wt -0.868 +#> 7 mpg qsec 0.419 +#> 8 mpg vs 0.664 +#> 9 mpg am 0.600 +#> 10 mpg gear 0.480 +#> # … with 111 more rows
x <- shave(x) # use shave to set upper triangle to NA and then... -stretch(x, na.rm = FALSE) # omit all NAs, therefore keeping each
#> # A tibble: 121 x 3 +stretch(x, na.rm = FALSE) # omit all NAs, therefore keeping each
#> # A tibble: 121 x 3 #> x y r -#> <chr> <chr> <dbl> -#> 1 mpg mpg NA -#> 2 mpg cyl -0.852 -#> 3 mpg disp -0.848 -#> 4 mpg hp -0.776 -#> 5 mpg drat 0.681 -#> 6 mpg wt -0.868 -#> 7 mpg qsec 0.419 -#> 8 mpg vs 0.664 -#> 9 mpg am 0.600 -#> 10 mpg gear 0.480 -#> # … with 111 more rows
# correlation only once. +#> <chr> <chr> <dbl> +#> 1 mpg mpg NA +#> 2 mpg cyl -0.852 +#> 3 mpg disp -0.848 +#> 4 mpg hp -0.776 +#> 5 mpg drat 0.681 +#> 6 mpg wt -0.868 +#> 7 mpg qsec 0.419 +#> 8 mpg vs 0.664 +#> 9 mpg am 0.600 +#> 10 mpg gear 0.480 +#> # … with 111 more rows
# correlation only once.
-