可以使用按数据帧中的一个变量分组的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) )我想格式化产生4个表为每个cat1到变量c的cat4为两个列的"x“和"y”或可选的1个表与每个cat1到cat4的4个部分。
希望有人能帮上忙。
在第一次回复/评论之后添加:更具体地说,我如何使用formattable一次性将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代码那样显示四个。这意味着我只想要一个表输出,该表输出在变量c的这4个gorup中进行排序和划分,要么使用formattable,要么使用其他类似的函数/工具。我一直在从你的提示中学习,但仍然不是我喜欢的地方。再次非常感谢您的努力。
发布于 2019-12-05 10:05:47
使用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://stackoverflow.com/questions/59186507
复制相似问题