size <- 12
. Later this will be the number of rows of the matrix.x <- rnorm( size )
.x1
by adding (on average 10 times smaller) noise to x
: x1 <- x + rnorm( size )/10
.x
and x1
should be close to 1.0: check this with function cor
.x2
and x3
by adding (other) noise to x
.size <- 12
x <- rnorm( size )
x1 <- x + rnorm( size )/10
cor( x, x1 )
[1] 0.9979363
x2 <- x + rnorm( size )/10
x3 <- x + rnorm( size )/10
x1
, x2
and x3
column-wise into a matrix using m <- cbind( x1, x2, x3 )
.m
.m
.heatmap( m, Colv = NA, Rowv = NA, scale = "none" )
.m <- cbind( x1, x2, x3 )
class( m )
[1] "matrix" "array"
head( m )
x1 x2 x3
[1,] -0.3046591 -0.06612074 -0.2968813
[2,] -1.0684873 -1.08945306 -1.0908191
[3,] -0.2963623 -0.32753770 -0.5587121
[4,] -0.2593068 -0.30790561 -0.3281420
[5,] 1.9313766 2.00102913 2.0415569
[6,] 0.9762773 1.01125846 1.0260592
heatmap( m, Colv = NA, Rowv = NA, scale = "none" ) # high is dark red, low is yellow
# x1, x2, x3 follow similar color pattern, they should be correlated
y1
…y4
(but not correlated with x
), of the same length size
.m
from columns x1
…x3
,y1
…y4
in some random order.y <- rnorm( size )
y1 <- y + rnorm( size )/10
y2 <- y + rnorm( size )/10
y3 <- y + rnorm( size )/10
y4 <- y + rnorm( size )/10
m <- cbind( y4, y3, x2, y1, x1, x3, y2 )
heatmap( m, Colv = NA, Rowv = NA, scale = "none" ) # high is dark red, low is yellow
cc <- cor( m )
to build the matrix of correlation coefficients between columns of m
.round( cc, 3 )
to show this matrix with 3 digits precision.cc <- cor( m )
round( cc, 3 ) #
y4 y3 x2 y1 x1 x3 y2
y4 1.000 0.976 -0.331 0.979 -0.317 -0.318 0.989
y3 0.976 1.000 -0.351 0.992 -0.342 -0.344 0.978
x2 -0.331 -0.351 1.000 -0.385 0.997 0.995 -0.387
y1 0.979 0.992 -0.385 1.000 -0.373 -0.372 0.981
x1 -0.317 -0.342 0.997 -0.373 1.000 0.995 -0.373
x3 -0.318 -0.344 0.995 -0.372 0.995 1.000 -0.379
y2 0.989 0.978 -0.387 0.981 -0.373 -0.379 1.000
heatmap( cc, symm = TRUE, scale = "none" )
# E.g. value for (row: x1, col: y1) is the corerlation of vectors x1, y1.
# Values of 1.0 are on the diagonal: e.g. x1 is perfectly correlated with x1.
# Correlations between x, x vectors are close to 1.0.
# Correlations between y, y vectors are close to 1.0.
# Correlations between x, y vectors are close to 0.0.
Copyright © 2023 Biomedical Data Sciences (BDS) | LUMC