如何在R中按组创建热图的矩阵?

时间:2016-12-21 11:14:37

标签: r matrix dataframe heatmap

我有一个示例数据如下,我想创建一个热图,其中平均睡眠持续时间(SLP)显示根据3个招募网站(网站)和5个招聘年(年)。

SLP site year sex
8.6  1   2008  1
7.2  1   2005  2
6.4  2   2006  2
9.5  3   2007  2
6.1  2   2009  2
5.1  3   2008  1
2.1  2   2006  2
3.6  1   2001  1
8.6  1   2008  1
7.2  1   2005  2
6.4  2   2006  2
9.5  3   2007  2
6.1  2   2009  2
5.1  3   2008  1
2.1  2   2006  2
3.6  1   2001  1

在我想要制作的热图中,x轴和y轴分别是年份和地点,每个细胞包括睡眠持续时间的平均持续时间。

我不知道如何从数据框制作矩阵来制作热图。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

有很多选项,它还取决于您希望如何创建热图。如果您想使用ggplot2,则无需修改data.frame。例如,这应该有效:

txt <- "SLP site year sex
8.6  1   2008  1
7.2  1   2005  2
6.4  2   2006  2
9.5  3   2007  2
6.1  2   2009  2
5.1  3   2008  1
2.1  2   2006  2
3.6  1   2001  1
8.6  1   2008  1
7.2  1   2005  2
6.4  2   2006  2
9.5  3   2007  2
6.1  2   2009  2
5.1  3   2008  1
2.1  2   2006  2
3.6  1   2001  1"

d <- read.table(text = txt, header = TRUE)
d$year <- factor(d$year) # make year a factor.

ggplot(d, aes(x = site, y = year, fill = SLP)) + geom_tile()