Здесь есть два шага: разбить фрейм данных на таблицы и отобразить их. Вот один из способов сделать это:
library(dplyr)
df <- data.frame(a=c(1,2,3,4,5,6,7,8,9),
b=c(2,4,6,8,10,12,14,16,18),
weight=c(500,1000,1500,500,1000,1500,500,1000,1500))
df %>% group_split(weight)
[[1]]
# A tibble: 3 x 3
a b weight
<dbl> <dbl> <dbl>
1 1 2 500
2 4 8 500
3 7 14 500
[[2]]
# A tibble: 3 x 3
a b weight
<dbl> <dbl> <dbl>
1 2 4 1000
2 5 10 1000
3 8 16 1000
[[3]]
# A tibble: 3 x 3
a b weight
<dbl> <dbl> <dbl>
1 3 6 1500
2 6 12 1500
3 9 18 1500
После разделения кадра данных вы можете отображать результаты различными способами, например, HTML output:
library(knitr)
> df %>% group_split(weight) %>% kable()
| a| b| weight|
|--:|--:|------:|
| 1| 2| 500|
| 4| 8| 500|
| 7| 14| 500|
| a| b| weight|
|--:|--:|------:|
| 2| 4| 1000|
| 5| 10| 1000|
| 8| 16| 1000|
| a| b| weight|
|--:|--:|------:|
| 3| 6| 1500|
| 6| 12| 1500|
| 9| 18| 1500|
Или вы может отправить вывод в подпрограммы форматирования данных, например, df %>% group_split(weight) %>% regulartable() %>% autofit()
из library(flextable)
.