These functions help users to make upper, lower, or symmetric matrices easily.
make_upper_tri(x, diag = NA) make_lower_tri(x, diag = NA) make_sym(x, make = "upper", diag = NA) tidy_sym(x, keep_diag = TRUE)
x | A matrix to apply the function. It must be a symmetric (square)
matrix in |
---|---|
diag | What show in the diagonal of the matrix. Default to |
make | The triangular to built. Default is |
keep_diag | Keep diagonal values in the tidy data frame? Defaults to
|
An upper, lower, or symmetric matrix, or a tidy data frame.
make_upper_tri()
makes an upper triangular matrix using a symmetric
matrix.
make_lower_tri()
makes a lower triangular matrix using a symmetric
matrix.
make_sym()
makes a lower triangular matrix using a symmetric matrix.
tidy_sym()
transform a symmetric matrix into tidy data frame.
Tiago Olivoto tiagoolivoto@gmail.com
#> EH EP EL ED CL CD #> EH NA 0.869546 0.3626537 0.6302561 0.3971935 0.2805118 #> EP NA NA 0.2634237 0.4580196 0.3908239 0.1750448 #> EL NA NA NA 0.3851451 0.2554068 0.9118653 #> ED NA NA NA NA 0.6974629 0.3897128 #> CL NA NA NA NA NA 0.3003636 #> CD NA NA NA NA NA NAmake_lower_tri(m)#> EH EP EL ED CL CD #> EH NA NA NA NA NA NA #> EP 0.8695460 NA NA NA NA NA #> EL 0.3626537 0.2634237 NA NA NA NA #> ED 0.6302561 0.4580196 0.3851451 NA NA NA #> CL 0.3971935 0.3908239 0.2554068 0.6974629 NA NA #> CD 0.2805118 0.1750448 0.9118653 0.3897128 0.3003636 NAmake_lower_tri(m) %>% make_sym(diag = 0)#> EH EP EL ED CL CD #> EH 0.0000000 0.8695460 0.3626537 0.6302561 0.3971935 0.2805118 #> EP 0.8695460 0.0000000 0.2634237 0.4580196 0.3908239 0.1750448 #> EL 0.3626537 0.2634237 0.0000000 0.3851451 0.2554068 0.9118653 #> ED 0.6302561 0.4580196 0.3851451 0.0000000 0.6974629 0.3897128 #> CL 0.3971935 0.3908239 0.2554068 0.6974629 0.0000000 0.3003636 #> CD 0.2805118 0.1750448 0.9118653 0.3897128 0.3003636 0.0000000tidy_sym(m)#> # A tibble: 36 x 3 #> group1 group2 value #> <chr> <chr> <dbl> #> 1 CD EH 0.281 #> 2 CD EP 0.175 #> 3 CD EL 0.912 #> 4 CD ED 0.390 #> 5 CD CL 0.300 #> 6 CD CD 1 #> 7 CL EH 0.397 #> 8 CL EP 0.391 #> 9 CL EL 0.255 #> 10 CL ED 0.697 #> # ... with 26 more rowstidy_sym(make_lower_tri(m))#> # A tibble: 15 x 3 #> group1 group2 value #> <chr> <chr> <dbl> #> 1 CD EH 0.281 #> 2 CD EP 0.175 #> 3 CD EL 0.912 #> 4 CD ED 0.390 #> 5 CD CL 0.300 #> 6 CL EH 0.397 #> 7 CL EP 0.391 #> 8 CL EL 0.255 #> 9 CL ED 0.697 #> 10 ED EH 0.630 #> 11 ED EP 0.458 #> 12 ED EL 0.385 #> 13 EL EH 0.363 #> 14 EL EP 0.263 #> 15 EP EH 0.870# }