将值格式化为保持数字的百分比

问题描述

我想将值格式化为百分比,其中还附加了 % 单位。我正在尝试以下步骤:

df<-data.frame(x=c("A","B","C","D","E"),Y=c(23,24,25,34,32))
df$Z<-sprintf("%.1f%%",df$Y)

但是这样新列 z 是字符。我稍后需要在使用库(DT)中显示一个带有数据条的 DT 表。像这样:

datatable(df)%>% formatStyle(c(2:3),background = styleColorBar(c(0,100),'lightblue'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat',backgroundPosition = 'center')

由于 Z 列现在是字符,因此无法在 Z 上创建条形。 我需要一些解决方案,可以将数字格式化为百分比(显示 % 作为后缀)但仍将它们保留为 numeric ,以便可以创建数据条。只能在数值上创建数据条。

解决方法

您可以使用 formatPercentage

df<-data.frame(x=c("A","B","C","D","E"),Y=c(23,24,25,34,32))
df$Z<- df$Y/100

datatable(df) %>%
    formatPercentage(3) %>% 
    formatStyle(3,background = styleColorBar(c(0,1),'lightblue'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat',backgroundPosition = 'center')

enter image description here

相关问答

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