Import packages

library(datasets)
library(magrittr)
library(dplyr)
library(data.table)
library(reshape2)
library(tidyr)
library(ggplot2)


Reshaping data

# Convert row names to column
mtcars_sc <- mtcars
mtcars_sc[1:11] <- as.data.frame(sapply(mtcars_sc[1:11], as.numeric))
mtcars_scale <- as.data.frame(scale(mtcars_sc))
mtcars_data <- data.table::setDT(data.frame(mtcars_scale), keep.rownames = TRUE)[]
mtcars_data <- data.frame(mtcars_data)
colnames(mtcars_data)[1] <- "automobile"
head(mtcars_data)
##          automobile        mpg        cyl        disp         hp
## 1         Mazda RX4  0.1508848 -0.1049878 -0.57061982 -0.5350928
## 2     Mazda RX4 Wag  0.1508848 -0.1049878 -0.57061982 -0.5350928
## 3        Datsun 710  0.4495434 -1.2248578 -0.99018209 -0.7830405
## 4    Hornet 4 Drive  0.2172534 -0.1049878  0.22009369 -0.5350928
## 5 Hornet Sportabout -0.2307345  1.0148821  1.04308123  0.4129422
## 6           Valiant -0.3302874 -0.1049878 -0.04616698 -0.6080186
##         drat           wt       qsec         vs         am       gear
## 1  0.5675137 -0.610399567 -0.7771651 -0.8680278  1.1899014  0.4235542
## 2  0.5675137 -0.349785269 -0.4637808 -0.8680278  1.1899014  0.4235542
## 3  0.4739996 -0.917004624  0.4260068  1.1160357  1.1899014  0.4235542
## 4 -0.9661175 -0.002299538  0.8904872  1.1160357 -0.8141431 -0.9318192
## 5 -0.8351978  0.227654255 -0.4637808 -0.8680278 -0.8141431 -0.9318192
## 6 -1.5646078  0.248094592  1.3269868  1.1160357 -0.8141431 -0.9318192
##         carb
## 1  0.7352031
## 2  0.7352031
## 3 -1.1221521
## 4 -1.1221521
## 5 -0.5030337
## 6 -1.1221521
# Reshaping using melt
mtcars_reshape <- reshape2::melt(mtcars_data, id.vars = c("automobile"))
head(mtcars_reshape)
##          automobile variable      value
## 1         Mazda RX4      mpg  0.1508848
## 2     Mazda RX4 Wag      mpg  0.1508848
## 3        Datsun 710      mpg  0.4495434
## 4    Hornet 4 Drive      mpg  0.2172534
## 5 Hornet Sportabout      mpg -0.2307345
## 6           Valiant      mpg -0.3302874
# Alternatively, reshaping using gather
mtcars_reshape_gather <- mtcars_data %>% tidyr::gather(metric, value, -automobile)
head(mtcars_reshape_gather)
##          automobile metric      value
## 1         Mazda RX4    mpg  0.1508848
## 2     Mazda RX4 Wag    mpg  0.1508848
## 3        Datsun 710    mpg  0.4495434
## 4    Hornet 4 Drive    mpg  0.2172534
## 5 Hornet Sportabout    mpg -0.2307345
## 6           Valiant    mpg -0.3302874


Plotting heat map

ggplot(mtcars_reshape, aes(x = variable, y = automobile)) + geom_tile(aes(fill = value)) + theme(text = element_text(size = 20))

"image"