R中的formattable可以通过变量对表进行分组吗?

是否可以使用formattable生成一个表,该表由数据帧中的变量之一分组?可以将表划分/拆分/分组为连续打印的单独表,也可以将分组分为一个表。

如果formattable无法实现,那么可以根据描述的需求推荐其他哪些包和函数来创建美观的表?

在此数据帧的示例中:

df <- tibble( 
     x = c(1:100),y = c("email","postal")[rep(c(1,2),times=50)],c = rep(c("cat1","cat2","cat3","cat4"),times=25) )

我希望formattable为两列“ x”和“ y”的变量c中的每个cat1至cat4生成4个表,或者为每个cat1至cat4生成1个带有4个部分的表。

希望任何人都可以提供帮助。

在首次回复/评论之后添加: 更具体地说,如何将format1一次地将tab1转换为tab4,最好在每个表之间使用c作为标签?

library(formattable)
tab1 <- subset(df,c == "cat1")
tab2 <- subset(df,c == "cat2")
tab3 <- subset(df,c == "cat3")
tab4 <- subset(df,c == "cat4")
formattable( tab1,list(c = FALSE ))
formattable( tab2,list(c = FALSE ))
formattable( tab3,list(c = FALSE ))
formattable( tab4,list(c = FALSE ))

高级编辑:我可能很难描述最终需求。 @ricoderks的建议几乎可以带我到那里。.它一口气做到了,但最后一件事是,我希望所有这些表都在一个视图/文件/输出/面板中显示,而不是在@ricoderks代码中显示四个。这意味着我只想要一个表输出,它可以通过formattable或其他类似的函数/工具从变量c中分类并划分为这4个组。我一直在从您的技巧中学到东西,但仍然不是我想成为的地方。再次非常感谢您的努力。

Example of how it should look

lhj730511 回答:R中的formattable可以通过变量对表进行分组吗?

使用dplyr,您可以基于组拆分数据框并获取具有单独数据框的列表:

library(dplyr)
list <- df %>% group_split(c)
names(list) <- unique(df$c)

,此处为list的格式:

> list
$cat1
# A tibble: 25 x 3
       x y     c    
   <int> <chr> <chr>
 1     1 email cat1 
 2     5 email cat1 
 3     9 email cat1 
 4    13 email cat1 
 5    17 email cat1 
 6    21 email cat1 
 7    25 email cat1 
 8    29 email cat1 
 9    33 email cat1 
10    37 email cat1 
# … with 15 more rows

$cat2
# A tibble: 25 x 3
       x y      c    
   <int> <chr>  <chr>
 1     2 postal cat2 
 2     6 postal cat2 
 3    10 postal cat2 
 4    14 postal cat2 
 5    18 postal cat2 
 6    22 postal cat2 
 7    26 postal cat2 
 8    30 postal cat2 
 9    34 postal cat2 
10    38 postal cat2 
# … with 15 more rows

$cat3
# A tibble: 25 x 3
       x y     c    
   <int> <chr> <chr>
 1     3 email cat3 
 2     7 email cat3 
 3    11 email cat3 
 4    15 email cat3 
 5    19 email cat3 
 6    23 email cat3 
 7    27 email cat3 
 8    31 email cat3 
 9    35 email cat3 
10    39 email cat3 
# … with 15 more rows

$cat4
# A tibble: 25 x 3
       x y      c    
   <int> <chr>  <chr>
 1     4 postal cat4 
 2     8 postal cat4 
 3    12 postal cat4 
 4    16 postal cat4 
 5    20 postal cat4 
 6    24 postal cat4 
 7    28 postal cat4 
 8    32 postal cat4 
 9    36 postal cat4 
10    40 postal cat4 
# … with 15 more rows

attr(,"ptype")
# A tibble: 0 x 3
# … with 3 variables: x <int>,y <chr>,c <chr>

是您要找的东西吗?

本文链接:https://www.f2er.com/2973745.html

大家都在问