在R包Formattable中,如何同时应用数字和条件格式?

时间:2017-07-10 20:02:41

标签: html r formattable

我有对象TABLE_LIST这是一个包含表格的列表(我无法提供隐私政策的内容,对不起)。

我首先创建了对象TABLE_LIST(它是data.frames 2x12的列表)

TABLE_LIST=lapply(1:4, function(x) data.frame(rbind(total.ratio4[[x]][-(1)], total.ratio2[[x]][-(1)]), row.names=row))

下面的代码根据单元格的值给出了红色和绿色字体颜色,它就像一个魅力:

formattable(TABLE_LIST[[1]], list(area(,-(c(5,10)))~formatter("span", style=x~style(color=ifelse(x>1,"red","green"))),area(,(c(5,10)))~formatter("span", style=x~style(color=ifelse(x>1,"green","red"))))) 

但是,我需要COLOR和逗号分隔的数字。我失败的尝试是:

formattable(TABLE_LIST[[1]], list(area(,-(c(5,10)))~formatter("span", style=x~style(color=ifelse(x>1,"red","green"))),area(,(c(5,10)))~formatter("span", style=x~style(color=ifelse(x>1,"green","red"),digits(x,2))),

area(1:2,1:10)~formatter("span",x~ style(digits(x,2))))) 

此代码效果很好,但会删除颜色的格式。我不知道还能做什么。

我不得不提到我无法更改原始data.frame而不会搞乱一切。所以我必须在table_list或formattable上进行更改。谢谢。

1 个答案:

答案 0 :(得分:0)

我想我解决了。所以我会将这些小知识分享给可能和我有同样问题的人:

formattable(TABLE_LIST[[1]], list(area(,-(c(5,10)))~formatter("span",
style=x~style(color=ifelse(x>1,"red","green")),x~style(digits(x,4))),
area(,(c(5,10)))~formatter("span",style=x~style(color=ifelse(x>1,"green","red")),
x~style(digits(x,4))))) 

基本上,在同一格式化程序中,在样式级别添加逗号和x~style