R Formattable将两种格式应用于一个区域
R Formattable apply two format to an area
我正在尝试使用格式table awesome package 并获得一个 table 在多列上缩放百分比和颜色。
这是代码
set.seed(123)
df <- data.frame(id = 1:10,
a = rnorm(10), b = rnorm(10), c = rnorm(10))
df$a <- percent(df$a)
df$b <- percent(df$b)
df$c <- percent(df$c)
table_with_percent_but_color_not_scaled <- formattable(df, list(a = color_tile("transparent", "pink")
, b= color_tile("transparent", "pink")
, c= color_tile("transparent", "pink")))
table_with_color_scaled_but_not_percent <- formattable(df, list(area(col = 2:4) ~ color_tile("transparent","pink")))
问题是 table_with_color_scaled_but_not_percent
没有保留百分比格式:
和table_with_percent_but_color_not_scaled
不保持相同的着色比例:
理想情况下,我想使用 area
功能,因为我的 df 列数和名称会在我的最终代码中发生变化。
任何的想法 ?
谢谢!
前一段时间我遇到了同样的问题,不得不创建自己的格式化程序。这是带有代码的格式化程序,用于创建与您的类似的 table。只需调整样式内的标签即可。
library(tidyverse)
library(formattable)
colorbar <- function(color = "lightgray", fun = "comma", digits = 0) {
fun <- match.fun(fun)
formatter("span", x ~ fun(x, digits = digits),
style = function(y) style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor(color),
width = percent(proportion(as.numeric(y), na.rm = TRUE))
)
)
}
set.seed(123)
df <- data.frame(id = as.factor(1:10),
a = rnorm(10), b = rnorm(10), c = rnorm(10)) %>%
mutate_if(is.numeric, percent)
tbl <- df %>%
formattable(list(area(col = 2:4) ~ colorbar(color = "pink", fun = "percent", digits = 2))) %>%
as.htmlwidget()
如果您有任何问题,请告诉我!
我正在尝试使用格式table awesome package 并获得一个 table 在多列上缩放百分比和颜色。
这是代码
set.seed(123)
df <- data.frame(id = 1:10,
a = rnorm(10), b = rnorm(10), c = rnorm(10))
df$a <- percent(df$a)
df$b <- percent(df$b)
df$c <- percent(df$c)
table_with_percent_but_color_not_scaled <- formattable(df, list(a = color_tile("transparent", "pink")
, b= color_tile("transparent", "pink")
, c= color_tile("transparent", "pink")))
table_with_color_scaled_but_not_percent <- formattable(df, list(area(col = 2:4) ~ color_tile("transparent","pink")))
问题是 table_with_color_scaled_but_not_percent
没有保留百分比格式:
和table_with_percent_but_color_not_scaled
不保持相同的着色比例:
理想情况下,我想使用 area
功能,因为我的 df 列数和名称会在我的最终代码中发生变化。
任何的想法 ?
谢谢!
前一段时间我遇到了同样的问题,不得不创建自己的格式化程序。这是带有代码的格式化程序,用于创建与您的类似的 table。只需调整样式内的标签即可。
library(tidyverse)
library(formattable)
colorbar <- function(color = "lightgray", fun = "comma", digits = 0) {
fun <- match.fun(fun)
formatter("span", x ~ fun(x, digits = digits),
style = function(y) style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor(color),
width = percent(proportion(as.numeric(y), na.rm = TRUE))
)
)
}
set.seed(123)
df <- data.frame(id = as.factor(1:10),
a = rnorm(10), b = rnorm(10), c = rnorm(10)) %>%
mutate_if(is.numeric, percent)
tbl <- df %>%
formattable(list(area(col = 2:4) ~ colorbar(color = "pink", fun = "percent", digits = 2))) %>%
as.htmlwidget()
如果您有任何问题,请告诉我!