0
我有一个名为“fdr”的data.frame。它看起来像这样:如何通过data.frame中的值为单元格着色?
pi pd aa ef
gene1 0.78 0.04 0.89 0.01
gene2 0.06 0.95 0.02 0.03
gene3 0.98 0.07 0.03 0.23
现在我想给红色小于0.05的所有单元格着色。 我该怎么做?
我有一个名为“fdr”的data.frame。它看起来像这样:如何通过data.frame中的值为单元格着色?
pi pd aa ef
gene1 0.78 0.04 0.89 0.01
gene2 0.06 0.95 0.02 0.03
gene3 0.98 0.07 0.03 0.23
现在我想给红色小于0.05的所有单元格着色。 我该怎么做?
对于将来的问题,请打印dput(fdr)的结果。这会让别人更容易回答。
考虑使用formattable package。
formattable(df, list(
pi = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)),
pd = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)),
aa = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)),
ef = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA))
))
这并不能完全实现你想要的(在着色单元而言)。但似乎你试图突出特定的情况下(< 0.05),这绝对捕捉到了这一点。
谢谢!但是在formatC(c(0.42,0.43,0.05,0,0,0.56,0.11,0.03,0.55,: (list)对象不能被改为整数 –
你需要在这方面做更多的扩展。 “在数据框中着色单元格”在R中是一种无意义的概念,除非你正在讨论如何在HTML表格中显示数据框,或者将其导出为支持电子表格的其他特定格式,如界面。在这种情况下,你需要解释你打算如何查看数据,你正在使用什么软件包等。 – joran
我使用grid.table函数和heatmap.2函数。 –
好的,那么除了下面的选项,考虑[this](http://stackoverflow.com/q/18663159/324364)的问题,也许呢?或者[this](http://stackoverflow.com/q/23819209/324364)或[this](http://stackoverflow.com/q/18414001/324364)? – joran