使用 gt 或 gtsummary 在 R-markdown 中以漂亮整洁的 table 显示 class 个变量
Display class of variables in a nice neat table in R-markdown using gt or gtsummary
我想很好地显示数据帧结构,尤其是显示列名和 class。我想做这样的事情:
str(my_df) %>% tbl_summary()
我知道那行不通,但我认为它可以解释我想做好的事情。 table 输出中有很多图像显示 class 但我无法在任何地方找到示例代码。我一直在尝试使用 gtsummary。
期望的输出是这样的...
您可以构建您想要显示的数据并使用任何漂亮的 table 显示库。
data <- setNames(stack(sapply(iris, class))[2:1], c('variable', 'class'))
data
# variable class
#1 Sepal.Length numeric
#2 Sepal.Width numeric
#3 Petal.Length numeric
#4 Petal.Width numeric
#5 Species factor
gt::gt(data)
选项 1:
library(stringr)
library(tidyverse)
library(DT)
datatable(iris, colnames = str_c(names(iris), ' ', '<', map(iris, class), '>'))
选项 2:使用 DT table documentation page
library(stringr)
library(tidyverse)
library(DT)
datatable(iris, colnames = str_c(names(iris), ' ', '<', map(iris, class), '>')) %>%
formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('normal', 'bold'))) %>%
formatStyle(
'Sepal.Width',
color = styleInterval(c(3.4, 3.8), c('white', 'blue', 'red')),
backgroundColor = styleInterval(3.4, c('gray', 'yellow'))
) %>%
formatStyle(
'Petal.Length',
background = styleColorBar(iris$Petal.Length, 'steelblue'),
backgroundSize = '100% 90%',
backgroundRepeat = 'no-repeat',
backgroundPosition = 'center'
) %>%
formatStyle(
'Species',
transform = 'rotateX(45deg) rotateY(20deg) rotateZ(30deg)',
backgroundColor = styleEqual(
unique(iris$Species), c('lightblue', 'lightgreen', 'lightpink')
)
)
选项 3:
datatable(cbind(names(iris), str_c( '<', map(iris, class), '>')), colnames = c('name', 'class'))
我们可以使用 formattable
library(dplyr)
library(tidyr)
library(formattable)
iris %>%
summarise(across(everything(), class)) %>%
pivot_longer(cols = everything()) %>%
formattable::formattable(.)
我想很好地显示数据帧结构,尤其是显示列名和 class。我想做这样的事情:
str(my_df) %>% tbl_summary()
我知道那行不通,但我认为它可以解释我想做好的事情。 table 输出中有很多图像显示 class 但我无法在任何地方找到示例代码。我一直在尝试使用 gtsummary。
期望的输出是这样的...
您可以构建您想要显示的数据并使用任何漂亮的 table 显示库。
data <- setNames(stack(sapply(iris, class))[2:1], c('variable', 'class'))
data
# variable class
#1 Sepal.Length numeric
#2 Sepal.Width numeric
#3 Petal.Length numeric
#4 Petal.Width numeric
#5 Species factor
gt::gt(data)
选项 1:
library(stringr)
library(tidyverse)
library(DT)
datatable(iris, colnames = str_c(names(iris), ' ', '<', map(iris, class), '>'))
选项 2:使用 DT table documentation page
library(stringr)
library(tidyverse)
library(DT)
datatable(iris, colnames = str_c(names(iris), ' ', '<', map(iris, class), '>')) %>%
formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('normal', 'bold'))) %>%
formatStyle(
'Sepal.Width',
color = styleInterval(c(3.4, 3.8), c('white', 'blue', 'red')),
backgroundColor = styleInterval(3.4, c('gray', 'yellow'))
) %>%
formatStyle(
'Petal.Length',
background = styleColorBar(iris$Petal.Length, 'steelblue'),
backgroundSize = '100% 90%',
backgroundRepeat = 'no-repeat',
backgroundPosition = 'center'
) %>%
formatStyle(
'Species',
transform = 'rotateX(45deg) rotateY(20deg) rotateZ(30deg)',
backgroundColor = styleEqual(
unique(iris$Species), c('lightblue', 'lightgreen', 'lightpink')
)
)
选项 3:
datatable(cbind(names(iris), str_c( '<', map(iris, class), '>')), colnames = c('name', 'class'))
我们可以使用 formattable
library(dplyr)
library(tidyr)
library(formattable)
iris %>%
summarise(across(everything(), class)) %>%
pivot_longer(cols = everything()) %>%
formattable::formattable(.)