使用R中的openxlsx包进行条件格式化

时间:2016-07-22 09:18:06

标签: r r-xlsx

我正在使用R中的OPENXLSX包将条件格式应用于Excel工作表。 我的代码是这样的:

posStyle <- createStyle(fontColour = "#006100", bgFill = "#C6EFCE")

conditionalFormatting(wb=wb1, sheet='sheet1', cols=1:10, rows=1:100, rule=" > 4", type = "expression",style = posStyle)

我面临的问题是,在第1列和第10列之间,如果任何列是非数字的,则条件格式应用于该列中的所有单元格。这理想情况下不应该发生,因为我的规则状态在单元格值大于4的地方应用格式。我错过了什么吗?如果没有,有什么解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:1)

回答你的第一个问题:是的,你错过了什么。 R以字典方式比较字符串,显然它会投射&#34; 4&#34;在您的示例中将字符串与另一个字符串进行比较之前 - 只需在R控制台中键入"a">4,然后看到结果为TRUE。有关详细信息,请参阅示例http://stat.ethz.ch/R-manual/R-devel/library/base/html/Comparison.html

要解决您的问题,最简单的方法是将规则更改为" >4 & <"a"左右,但& - 运算符似乎根据conditionalFormatting帮助无效。所以对我来说,看起来你必须知道带有数字输入的列,并将这些列提供给格式化程序,如

conditionalFormatting(wb=wb1, sheet='sheet1', cols=numeric_cols, rows=1:100, rule=" > 4", type = "expression",style = posStyle)