1

我正在使用 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 的地方应用格式。我错过了什么吗?如果没有,有什么解决办法吗?谢谢!

4

1 回答 1

1

回答你的第一个问题:是的,你错过了一些东西。R 以字典方式比较字符串,显然它会将示例中的“4”转换为字符串,然后再将其与另一个字符串进行比较 - 只需"a">4在 R 控制台中输入并查看结果为TRUE. 有关这方面的更多详细信息,请参见例如http://stat.ethz.ch/R-manual/R-devel/library/base/html/Comparison.html

为了解决您的问题,如果您可以将规则更改为" >4 & <"a"左右,那将是最简单的,但&根据 conditionalFormatting 帮助,-operator 似乎无效。所以对我来说,看起来你必须知道带有数字输入的列,然后将它们提供给格式化程序,比如

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

于 2017-06-19T12:26:24.923 回答