【发布时间】:2021-10-15 08:18:14
【问题描述】:
我有一个如下表(dput在最后)
# A tibble: 35 x 5
# Groups: year [1]
school_id class_id year variable value
<dbl> <chr> <dbl> <chr> <dbl>
1 123 1 2020 sex_numerator_male 137
2 123 1 2020 sex_numerator_female 67
3 123 1 2020 sex_denominator_male 156986
4 123 1 2020 sex_denominator_female 173055
5 123 1 2020 age_numerator_18_34 76
6 123 1 2020 age_numerator_35_54 97
7 123 1 2020 age_numerator_55 31
8 123 1 2020 age_denominator_18_34 98662
9 123 1 2020 age_denominator_35_54 101261
10 123 1 2020 age_denominator_55 130118
我要做的是制作一个如下所示的自定义表格。我无法在 R 中解决它,因此粘贴了屏幕截图。应显示变量名称的相应值。为了便于理解,只在表格图片中显示变量名。
我正在使用 GT 包将数据组织到所需的表中。未能成功。除了性别、年龄,我还有其他行值。我正在尝试的是
- 控制我可以将
variable列及其对应的values放置在上面的示例表格快照格式中的位置。 - 我将表格按 3 列分组,
School_id, class_id and year。因此,我可以为每个组分别生成表格。
如果提出任何解决方案,请欣赏。
structure(list(school_id = c(123, 123, 123, 123, 123, 123, 123,
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
123, 123), class_id = c("1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
"1"), year = c(2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020, 2020, 2020), variable = c("sex_numerator_male",
"sex_numerator_female", "sex_denominator_male", "sex_denominator_female",
"age_numerator_18_34", "age_numerator_35_54", "age_numerator_55",
"age_denominator_18_34", "age_denominator_35_54", "age_denominator_55",
"all_sex_numerator_male_sum", "all_sex_denominator_male_sum",
"all_sex_numerator_female_sum", "all_sex_denominator_female_sum",
"all_age_numerator_18_34_sum", "all_age_denominator_18_34_sum",
"all_age_numerator_35_54_sum", "all_age_denominator_35_54_sum",
"all_age_numerator_55_sum", "all_age_denominator_55_sum", "total_num_sex_m",
"total_num_sex_f", "total_num_age_18_34", "total_num_age_35_54",
"total_num_age_55", "county_OD_death_sex_m", "county_OD_death_sex_f",
"county_OD_death_age_18_34", "county_OD_death_age_35_54", "county_OD_death_age_55",
"allhcs_OD_death_sex_m", "allhcs_OD_death_sex_f", "allhcs_OD_death_age_18_34",
"allhcs_OD_death_age_35_54", "allhcs_OD_death_age_55"), value = c(137,
67, 156986, 173055, 76, 97, 31, 98662, 101261, 130118, 1441,
1908231, NA, 2073091, 687, 1237334, 996, 1228864, NA, 1515124,
47.5656054853791, 52.4343945146209, 29.8938616717317, 30.6813395911417,
39.4247987371266, 87.2689284394787, 38.7160151396955, 77.0306703695445,
95.7920620969574, 23.8245285048956, 75.5149664794252, NA, 55.5225993951512,
81.0504661215562, NA)), row.names = c(NA, -35L), groups = structure(list(
year = 2020, .rows = structure(list(1:35), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
【问题讨论】:
-
xtable 应该这样做,有很多支持自定义它来做你想做的事,你能尝试产生一个我们可以帮助修复的 xtable 尝试吗?
-
@pluke 你能分享一下 xtable 文档吗,我可以试试。我认为 gt 包对用户更友好
-
我对 xtable 包不太熟悉。我个人觉得 kableExtra 更容易使用。
标签: r dplyr r-markdown xtable gt