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

重塑数据框:将年份设为列,原变量转为KPI行以计算变动

数据框重塑:将年份转为列、KPI转为行

你可以用R的tidyverse工具包(核心是tidyr中的pivot_longer和pivot_wider函数)完成这个数据重塑需求,具体步骤如下:

1. 加载依赖包

library(tidyverse)

2. 原始数据

df <- data.frame(
  PERIOD = c(2020, 2021),
  map = c(1, 2),
  mac = c(1, 4)
)

3. 执行数据重塑

先把宽格式的map、mac列转成长格式的kpi和value列,再将PERIOD转为列名:

reshaped_df <- df %>%
  pivot_longer(cols = c(map, mac), names_to = "kpi", values_to = "value") %>%
  pivot_wider(names_from = PERIOD, values_from = value)

4. 重塑后结果

运行代码后得到的目标数据框:

# A tibble: 2 × 3
  kpi   `2020` `2021`
  <chr>  <dbl>  <dbl>
1 map        1      2
2 mac        1      4

5. 计算KPI变动值

基于重塑后的结构,可轻松计算任意两年的变动(差值或增长率):

# 计算2021相对2020的差值
reshaped_df <- reshaped_df %>%
  mutate(diff_2021_2020 = `2021` - `2020`)

# 计算2021相对2020的增长率(百分比)
reshaped_df <- reshaped_df %>%
  mutate(growth_rate = (`2021` - `2020`) / `2020` * 100)

内容的提问来源于stack exchange,提问作者Emiliano Barone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:20:02