我有一个非常简单的问题。我有一个包含多行和多列的数据框。我的行代表时间点。我的列是潜在条件,我的单元格是这些条件在特定时间发生的概率。
我想将此信息输出到 PDF 表。此外,我想为此添加颜色。例如 < 60% 的灰色文本。60-75 绿色文本。75+ 亮绿色。
有没有办法做到这一点?
此外,是否可以在我的 PDF 输出中有一列由水平条组成。条的大小也将基于我的单元格值。理想情况下,我也可以对此进行着色。
我有一个非常简单的问题。我有一个包含多行和多列的数据框。我的行代表时间点。我的列是潜在条件,我的单元格是这些条件在特定时间发生的概率。
我想将此信息输出到 PDF 表。此外,我想为此添加颜色。例如 < 60% 的灰色文本。60-75 绿色文本。75+ 亮绿色。
有没有办法做到这一点?
此外,是否可以在我的 PDF 输出中有一列由水平条组成。条的大小也将基于我的单元格值。理想情况下,我也可以对此进行着色。
如果您愿意使用 LaTeX,您可以使用Rd2roxygen,有多种方法可以将表格从 R 导出到 LaTeX 或 HTML。
如果您不想使用 LaTeX,则可以使用热图来传达细胞中的差异。这是Jason Bryer 的一个很好的例子和另一个例子。
Jason Bryer 博客中的表格,供那些没有时间点击上面链接的人使用。
使用 ggplot 和热图。
下面的示例代码。
df.m = melt(df)
df.m <- ddply(df.m, .(variable), transform,rescale = scale(value))
pp = ggplot(df.m, aes(x = variable, y = Time, fill = rescale, label = sprintf("%1.1f%%", 100*value),size=10))
pp = pp + geom_tile() + geom_text(aes(size=10)) +
scale_x_discrete(name = '', expand = c(0, 0)) +
scale_y_discrete(name = '', expand = c(0, 0)) +
scale_fill_gradient2(low = 'grey', high = 'steelblue') +
theme_bw() +
opts(legend.position = 'none',
panel.grid.major = theme_line(colour = NA),
panel.grid.minor = theme_line(colour = NA))