Заполнить недостающие значения тепловой карты - PullRequest
0 голосов
/ 01 июня 2018

У меня есть таблица с двумя переменными, из которой я хочу составить тепловую карту.Вот мой код:

color <- read.table(textConnection("
Green Red 
0 0
0 1
1 1
0 2
0 5
0 1
0 0
0 0"), header = T)

tab <- table(color)
heatmap(tab, Rowv = NA, Colv = NA)

Я хотел бы заполнить «отсутствующие» значения на 0 на тепловой карте, например, иметь по горизонтали 0, 1, 2, 3, 4, 5 (с 0 в 3-м и 4-мстрока) вместо 0, 1, 2, 5.

Я не смог сделать это ни автоматически, ни вручную, манипулируя сгенерированной таблицей соответствия («табуляция»).

1 Ответ

0 голосов
/ 02 июня 2018

Мы можем установить factor уровни Green и Red до для построения таблицы, включающей "пустые" уровни.

Например, допустим, что мы хотимрассмотреть уровни 0..5 для Green и 0..2 для Red:

color$Red <- factor(color$Red, levels = as.character(0:5));
color$Green <- factor(color$Green, levels = as.character(0:2));

tab <- table(color);

Обратите внимание, что tab теперь содержит 0 записей для пустых уровней

tab;
#     Red
#Green 0 1 2 3 4 5
#    0 3 2 1 0 0 1
#    1 0 1 0 0 0 0
#    2 0 0 0 0 0 0

heatmap(tab, Rowv = NA, Colv = NA)

enter image description here

Поскольку heatmap по умолчанию масштабирует записи по строкам, довольно сложно понять, что пропущенные уровни действительно имеют значения 0, поэтому давайте отключим масштабирование:

heatmap(tab, Rowv = NA, Colv = NA, scale = "none")

enter image description here

Здесь красный соответствует 0.

...