i have following list
t <- c(22, 22, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 18, 18, 18, 12, 12, 12, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 6, 6, 6, 6, 6, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5, 5, 10, 10, 10, 17, 17, 17, 14, 14, 15, 15, 15)
which want assign color each uniform color code
library(rcolorbrewer) rowcol <- colorramppalette(brewer.pal(8,"dark2")) rowcol(length(unique(t)))[t]
but why produces nas?
[1] na na "#a66f20" "#a66f20" "#a66f20" "#a66f20" "#a66f20" "#a66f20" "#a66f20" "#a66f20" "#a66f20" [12] "#578a52" "#578a52" "#578a52" "#578a52" "#578a52" "#578a52" "#578a52" "#8a6c8d" "#8a6c8d" "#8a6c8d" "#c9611d" [23] "#c9611d" "#c9611d" "#1b9e77" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" [34] "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#93762d" "#7f6ea0" "#7f6ea0" [45] "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f6ea0" "#7f7c39" [56] "#7f7c39" "#7f7c39" "#7f7c39" "#7f7c39" na na na na na na na [67] na na na na na na na "#7570b3" "#7570b3" "#bb6814" "#bb6814" [78] "#bb6814" "#bb6814" "#bb6814" "#bb6814" "#bb6814" "#bb6814" "#bb6814" "#bb6814" "#d35f0b" "#d35f0b" "#d35f0b" [89] "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" "#d35f0b" [100] "#d35f0b" "#2f976a" "#2f976a" "#2f976a" "#43905e" "#43905e" "#43905e" "#43905e" "#6b8345" "#6b8345" "#6b8345" [111] "#6b8345" "#6b8345" "#ce6208" "#ce6208" "#ce6208" "#946a7b" "#946a7b" "#946a7b" "#b46543" "#b46543" "#a96755" [122] "#a96755" "#a96755"
at end of day i'd use final vector rowsidecolors
argument in heatmap.2
.
let's use vector "t":
what length of unique(t)
?
length(unique(t)) # 20
what happens if use rowcol
:
pal <- rowcol(length(unique(t))) pal # [1] "#1b9e77" "#61864b" "#a66f20" "#ce6014" "#a96755" "#846d97" "#8d61aa" "#b7469b" "#e12c8c" "#be5067" "#8e7e40" # [12] "#6ca61c" "#9ba812" "#cba907" "#dba206" "#c48f10" "#ac7b1a" "#957130" "#7d6b4b" "#666666" length(pal) # 20
and maximum of "t", i.e.
max(t) # 22
we see length of pal
, maximum value of "t" mismatch. why when "t" equal 21 or 22, na
.
you need use rowcol(max(t))[t]