如何按组重新组织表格和/或在当前标题上添加新标题?

How to reorganize table by group and/or add a new heading on an current heading?

提问人:Julia_MOura 提问时间:10/25/2023 更新时间:10/25/2023 访问量:22

问:

我有一个包含 4 列的原始 df:“Year”、“Variable”、“Frquency”和“%”。

从2011年到2022年;变量对应于年龄,并带有子分类(例如,“年龄”可以< 5 岁、5 至 10 岁和 10 岁>)。表示我的 df 是什么样子

df 对每个年龄分类重复年份 3 次。我想重新组织我的 df,使其每年显示一次列,并将 3 个年龄分类作为行,以便最后我可以使用 KableExtra 包为我的文章构建一个好看的表格。

我瞄准的桌子模型。这些值是随机的...

我尝试使用,但“频率”和“%”的值按年份分成不同的列,为我提供了两列年份:frequency_2011;%_2011.....pivot_wider()

R 数据帧 tidyr kableextra

评论


答:

0赞 mapardo 10/25/2023 #1

您可以将 frequency 和 % 列粘贴到一列中,然后可以应用pivot_wider转换

生成随机数据帧(年份、年龄、频率、perc)

df <- data.frame(expand.grid(year=seq(2011,2022),age=c("<5","5-10",">10")),freq=sample(seq(100,500),36),perc=sample(seq(1,100),36))

粘贴 freq 和 perc 列以生成 freq.perc 列(删除 freq 和 perc 列)

df2 <- df %>% transmute(year,age,freq.perc=paste0(freq," (",perc,"%)")) 

应用pivot_wider转换

df3 <- df2 %>% pivot_wider(names_from = "year",values_from = "freq.perc")