我有一个看起来像这样的组数据集:
1 Groupname
11 Subgroupname
111 Subsubgroupname1
112 Subsubgroupname2
12 Subgroupname
121 Subsubgroupname
122 Subsubgroupname
2 Groupname
21 Subgroupname
211 Subsubgroupname1
212 Subsubgroupname2
22 Subgroupname
221 Subsubgroupname
222 Subsubgroupname
理想情况下,我想将 reactable 与 groupBy 一起使用,这样一开始,只显示具有单个数字(范围从 1 到 9)的大组,但是当您展开它时,您会看到两位数的子组,并且然后您可以展开每个子组以显示具有三位数字的“子子组”。
我已经尝试使用可反应的嵌套表函数/详细信息选项,但列/内容没有像我想要的那样对齐(https://glin.github.io/reactable/articles/examples.html#nested -tables-1 )
但是,当我使用 groupBy 选项(https://glin.github.io/reactable/articles/examples.html#grouping-and-aggregation-1)时,组和子组的名称不会显示在可扩展行中我会期待的。我相信我必须通过 JS 指定一个自定义聚合函数,但我真的不需要聚合任何东西——如果你愿意的话,我的日期已经聚合了,我只想要一种特定的方式来显示它。
到目前为止,这是我的代码(以及数据文件的链接:https ://www.dropbox.com/s/yisn36ekchyeogs/cno11_estructura.xls?dl=0 )
rm(list = ls())
library(dplyr)
library(readxl)
library(reactable)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) # Set working directory
#Reads data, cleans it ----
ocup <- readxl::read_excel("cno11_estructura.xls",
col_names = F,
sheet = 1,
range = "A1:B761")
colnames(ocup) <- c("codigo_ocup", "nombre_ocup")
cod1d <- as.character(0:9)
ocup <- ocup %>%
filter(nchar(codigo_ocup) != 1 | codigo_ocup %in% cod1d) %>%
filter(nchar(codigo_ocup) < 4) %>%
mutate(digitos = case_when(nchar(codigo_ocup) == 1 ~ 1,
nchar(codigo_ocup) == 2 ~ 2,
nchar(codigo_ocup) == 3 ~ 3)
)
ocup1d <- ocup[ocup$digitos==1,c("codigo_ocup", "nombre_ocup")]
ocup2d <- ocup[ocup$digitos==2,c("codigo_ocup", "nombre_ocup")]
ocup3d <- ocup[ocup$digitos==3,c("codigo_ocup", "nombre_ocup")]
# Attempt using nested tables works but columns are not nicely aligned
reactable(ocup1d, details = function(index) {
ocup2d_temp <- ocup2d[substr(ocup2d$codigo_ocup,1,1) == ocup1d$codigo_ocup[index], ]
htmltools::div(style = "padding: 16px",
reactable(ocup2d_temp, details = function(index) {
ocup3d_temp <- ocup3d[substr(ocup3d$codigo_ocup,1,2) == ocup2d$codigo_ocup[index], ]
htmltools::div(style = "padding: 16px",
reactable(ocup3d_temp, outlined = F)
)
})
)
})
#Attempt using groupBy does not show "title" of the group properly
ocup$digitos <- NULL
ocup$codigo_ocup_1d <- substr(ocup$codigo_ocup,1,1)
ocup$codigo_ocup_2d <- substr(ocup$codigo_ocup,1,2)
reactable(ocup,
groupBy = c("codigo_ocup_1d", "codigo_ocup_2d")
)
我有没有机会获得嵌套表的正确扩展行为以及 groupBy 选项的正确列对齐?提前谢谢了!