如何在R语言中制作两年类别金额对比表格
解决方法
你要的格式本质就是长数据转宽数据,用tidyr包的pivot_wider()就能直接实现,配合简单的缺失值处理就能得到你要的效果,步骤如下:
1. 构造示例数据
先把你的数据转成R的数据框:
df <- tibble::tibble( year = c(2022, 2022, 2023, 2023), category = c("Rent", "Grocery", "Rent", "Shopping"), amount = c(10, 11, 8, 9) )
2. 长转宽并处理缺失值
用pivot_wider()转成宽格式,再把NA替换为空字符串(匹配你要的空白显示效果):
library(tidyverse) wide_df <- df %>% pivot_wider( id_cols = category, # 以category作为行标识 names_from = year, # 把year的取值作为列名 values_from = amount # 把amount的值填充到对应位置 ) %>% mutate(across(c(`2022`, `2023`), ~ifelse(is.na(.), "", .))) # 将NA替换为空
3. 输出目标格式
如果需要在控制台或文档中显示成你要的表格样式,用knitr::kable()输出即可:
knitr::kable(wide_df, format = "simple")
输出结果:
category 2022 2023 ---------- ------ ------ Rent 10 8 Grocery 11 Shopping 9
内容的提问来源于stack exchange,提问作者max
相关产品推荐
相关产品推荐

