首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >formattable在R中可以按变量对表进行分组吗?

formattable在R中可以按变量对表进行分组吗?
EN

Stack Overflow用户
提问于 2019-12-05 08:28:18
回答 1查看 540关注 0票数 0

可以使用按数据帧中的一个变量分组的formattable生成一个表吗?该表可以被分割/拆分/分组成连续打印的单独的表,或者分组被分离在一个表中。

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

在此数据帧的示例中:

代码语言:javascript
复制
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) )

我想格式化产生4个表为每个cat1到变量c的cat4为两个列的"x“和"y”或可选的1个表与每个cat1到cat4的4个部分。

希望有人能帮上忙。

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

代码语言:javascript
复制
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代码那样显示四个。这意味着我只想要一个表输出,该表输出在变量c的这4个gorup中进行排序和划分,要么使用formattable,要么使用其他类似的函数/工具。我一直在从你的提示中学习,但仍然不是我喜欢的地方。再次非常感谢您的努力。

Example of how it should look

EN

回答 1

Stack Overflow用户

发布于 2019-12-05 10:05:47

使用dplyr,您可以根据组拆分数据帧,并获得包含独立数据帧的列表:

代码语言:javascript
复制
library(dplyr)
list <- df %>% group_split(c)
names(list) <- unique(df$c)

这里是list的格式

代码语言:javascript
复制
> 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>

这是你要找的东西吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59186507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档