You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:04:57