以下R
代码可用于格式化iris
数据的前四列。想知道如何格式化所有数字列,而不是给出它们的名称或位置。
library(tidyverse)
library(DT)
iris %>%
datatable() %>%
formatRound(1:4, digits = 2)
也许,我们可以在转换为datatable
之前这样做
library(dplyr)
library(DT)
iris %>%
mutate(across(where(is.numeric), sprintf, fmt = '%.2f')) %>%
datatable()
或者另一个选项是检查创建的对象中的"数据"组件
iris %>%
datatable() %>%
formatRound(purrr::map_lgl(.$x$data, is.numeric), digits = 2)
一个可能的解决方案:
iris %>%
datatable() %>%
formatRound(which(sapply(iris,is.numeric)), digits = 2)