如何在 R 中按组创建热图矩阵?
How to create matrix for heatmap by group in R?
我有一个示例数据如下,我想创建一个热图,其中根据 3 个招聘站点(站点)和 5 个招聘年(年)显示平均睡眠持续时间(SLP)。
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 轴分别是年份和地点,并且每个单元格都包括睡眠持续时间的平均持续时间。
我不知道如何从数据框中制作矩阵来制作热图。
我该怎么做?
有很多选择,这也取决于你想如何创建热图。如果你想使用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()
我有一个示例数据如下,我想创建一个热图,其中根据 3 个招聘站点(站点)和 5 个招聘年(年)显示平均睡眠持续时间(SLP)。
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 轴分别是年份和地点,并且每个单元格都包括睡眠持续时间的平均持续时间。
我不知道如何从数据框中制作矩阵来制作热图。 我该怎么做?
有很多选择,这也取决于你想如何创建热图。如果你想使用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()