能否在Formatr表上下文中创建格式化程序,以便有条件地应用它?
我有一个数据帧,它将使用FormatR formattable库进行格式化。我创建了一个格式化程序来应用适当的格式。但是,数据帧包含一些NAs,当遇到这些NAs时,格式化会失败。我真正想做的是对格式化程序进行编码,以便它有条件地确定何时应用格式以及何时不应用格式。下面的代码说明了这个问题能否在Formatr表上下文中创建格式化程序,以便有条件地应用它?,r,conditional-formatting,formatter,formattable,R,Conditional Formatting,Formatter,Formattable,我有一个数据帧,它将使用FormatR formattable库进行格式化。我创建了一个格式化程序来应用适当的格式。但是,数据帧包含一些NAs,当遇到这些NAs时,格式化会失败。我真正想做的是对格式化程序进行编码,以便它有条件地确定何时应用格式以及何时不应用格式。下面的代码说明了这个问题 library(formattable) theData1 <- data.frame("A"=c(12.1456, 143.012), "B"=c(145.23
library(formattable)
theData1 <- data.frame("A"=c(12.1456, 143.012), "B"=c(145.23435, 331.22335))
theData2 <- data.frame("A"=c(12.1456, 143.012), "B"=c(145.23435, 331.22335), "C"=c(143.012, NA))
MyFormatter <- formattable::formatter(
"span", style = ~ style(font.weight="bold"), x ~ style(round(x,2)))
tbl1 <- formattable::formattable(theData1, list('A'=MyFormatter, 'B'=MyFormatter))
tbl2 <- formattable::formattable(theData1, list('A'=MyFormatter, 'B'=MyFormatter, 'C'=MyFormatter))
库(格式化表)
数据1ifelse
可用于处理NA
s
MyFormatter <- formattable::formatter(
"span",
style = ~ style(font.weight = "bold"),
x ~ style(ifelse(!is.na(x), round(x, 2), ""))
)
formattable::formattable(theData2, list('A'=MyFormatter, 'B'=MyFormatter, 'C'=MyFormatter))
MyFormatter谢谢。我本以为我尝试了“ifelse”,因为这是一个我经常使用的函数,但我可能把它放在了错误的代码位置。无论如何,谢谢。。。这很有效。