R: formattable 的样式参数的内容显示在输出图片上

问题描述

给定一个数据框如下:

df <- structure(list(` ` = c("v1","v2","v3","v4","v5","v6","v7","v8","v9","v10"),last_week = c(10,31.34,85.86,3375.01,7721.54,9,18.28,58.84,6177.73,19890.55,36.35),this_week = c(27,47.25,99.4,2253.04,4861.4,20,43.04,52.89,2395.22,2943.64,12.67),pct = structure(c(1.7,0.5077,0.1577,-0.3324,-0.3704,1.2222,1.3545,-0.1011,-0.6123,-0.852,-0.6515),formattable = list(formatter = "formatC",format = list(format = "f",digits = 2L),preproc = "percent_preproc",postproc = "percent_postproc"),class = c("formattable","numeric"))),class = "data.frame",row.names = c(NA,-11L
))

我尝试使用 0.2.1 版本的 formattable 包来创建一个时尚的桌子:

library(formattable)
formattable(df,list(
              ~formatter("span",style = x ~ formattable::style(display = "block","border-radius" = "2px","padding" = "2px","text-align" = "left")
                        ),last_week = color_tile("#DeF7E9","#FA614B"),this_week = color_tile("#DeF7E9",`pct` = formatter("span",style = ~ style(color = ifelse(`this_week` > `last_week`,"red","green")),~ icontext(sapply(`pct`,function(x) if (x < 0) "arrow-down" else if (x > 0) "arrow-up" else ""),`pct`)))
)

出:

enter image description here

但如您所见,this_weeklast_week 列不是常规数字。

之前已经解决了,但在我更新软件包后似乎出现了错误

有谁知道我该如何处理这个问题?谢谢。

解决方法

我设法通过更改格式化程序参数来解决您的问题,通过 df= 更改 ~ :

formattable(df,list(
              df=formatter("span",style = x ~ formattable::style(display = "block","border-radius" = "2px","padding" = "2px","text-align" = "left")
              ),last_week = color_tile("#DeF7E9","#FA614B"),this_week = color_tile("#DeF7E9",`pct` = formatter("span",style = ~ style(color = ifelse(`this_week` > `last_week`,"red","green")),~ icontext(sapply(`pct`,function(x) if (x < 0) "arrow-down" else if (x > 0) "arrow-up" else ""),`pct`)))
)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...