Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对数据表对象使用镶嵌面换行_R_Dt - Fatal编程技术网

R 对数据表对象使用镶嵌面换行

R 对数据表对象使用镶嵌面换行,r,dt,R,Dt,我使用的是DT包,我想用一个数据集在单独的窗格中显示两个表 理想情况下,我希望类似于facet wrap的东西可以让我根据计划id创建表。我希望有一个表包含个人计划的所有值,另一个表包含团队计划的所有值。我可以走很长的路,制作两个独立的数据集,但我希望我能做一些更有效率的事情 这是我的数据 structure(list(first_month = structure(c(17532, 17532, 17563, 17563, 17591, 17591, 17622, 17622, 17652,

我使用的是DT包,我想用一个数据集在单独的窗格中显示两个表

理想情况下,我希望类似于facet wrap的东西可以让我根据计划id创建表。我希望有一个表包含个人计划的所有值,另一个表包含团队计划的所有值。我可以走很长的路,制作两个独立的数据集,但我希望我能做一些更有效率的事情

这是我的数据

structure(list(first_month = structure(c(17532, 17532, 17563, 
17563, 17591, 17591, 17622, 17622, 17652, 17652), class = "Date"), 
    plan_id = c("personal", "team", "personal", "team", "personal", 
    "team", "personal", "team", "personal", "team"), new_customers = c(16, 
    32, 27, 33, 19, 41, 36, 46, 48, 46), `1` = c(16, 32, 27, 
    33, 19, 41, 36, 46, 48, 46), `2` = c(13, 29, 24, 30, 15, 
    37, 31, 40, 43, 38), `3` = c(13, 26, 22, 28, 14, 31, 30, 
    40, 36, 35), `4` = c(10, 20, 22, 22, 12, 29, 27, 39, 32, 
    33), `5` = c(10, 18, 20, 20, 11, 25, 22, 36, 27, 27), `6` = c(10, 
    16, 16, 20, 9, 24, 19, 34, 24, 25), `7` = c(10, 12, 13, 18, 
    7, 24, 16, 32, 21, 23), `8` = c(8, 10, 10, 14, 7, 21, 16, 
    30, 19, 21), `9` = c(7, 8, 7, 12, 7, 18, 16, 25, NA, NA), 
    `10` = c(7, 7, 5, 11, 6, 14, NA, NA, NA, NA), `11` = c(5, 
    6, 5, 10, NA, NA, NA, NA, NA, NA), `12` = c(5, 6, NA, NA, 
    NA, NA, NA, NA, NA, NA)), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))
这是我的密码

  datatable(monthly_new_customer_cohorts_formatted_as_cohort_analysis_customer_counts,
            class = 'cell-border stripe',
            rownames = FALSE,
            options = list(
              ordering=F,
              dom = 't',
              pageLength = 1000))

也许这不是最巧妙的答案,但希望这能有所帮助。您可以使用
groupby
nest
mutate
map2
根据
plan\u id
创建单独的数据集,然后从每个数据集创建单独的DT小部件

library(dplyr)
library(tidyr)
library(purrr)

# Separate data for each plan_id value:
widgets <- monthly_new_customer_cohorts_formatted_as_cohort_analysis_customer_counts %>% 
  group_by(plan_id) %>% nest()

# For each data subset, create a separate DT widget:
widgets <- widgets %>% mutate(dt_widget = map2(.y = plan_id, .x = data, .f = function(x,y){
  datatable(x,class = 'cell-border stripe',caption = y,
            rownames = FALSE,options = list(
              ordering=F,
              dom = 't',
              pageLength = 1000),
            height = "100%",width = "100%")}))
不幸的是,我认为没有一个函数可以为您提供漂亮的网格ala
ggplot2::facet_wrap
(例如,9个facet的3x3网格),但您可以通过调整
div
元素中的样式值手动执行此操作。例如,通过减小宽度和调整浮动,这允许表格位于同一行上:

browsable(
  tagList(list(
    tags$div(
      widgets$dt_widget[[1]],
      style = 'width:49%;display:block;float:left;'
    ),
    tags$div(
      widgets$dt_widget[[2]],
      style = 'width:49%;display:block;float:right;')
    )
  ))
browsable(
  tagList(list(
    tags$div(
      widgets$dt_widget[[1]],
      style = 'width:49%;display:block;float:left;'
    ),
    tags$div(
      widgets$dt_widget[[2]],
      style = 'width:49%;display:block;float:right;')
    )
  ))