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

R语言中如何对多个值进行cast转换实现长表转宽表

R语言多值列cast宽转换实现方案

你需要实现的是将长结构数据按year维度展开,同时保留val、cap两个值列的宽整形操作,可通过以下两种常用方法实现:

方法1:使用tidyr包的pivot_wider(tidyverse生态推荐方案)

# 加载依赖包
library(tidyr)

# 执行多值列宽转换
result <- pivot_wider(
  data = asd,
  id_cols = week,
  names_from = year,
  values_from = c(val, cap),
  names_sep = "_"
)

运行后得到的结果列名格式、数值都和需求匹配。

方法2:使用reshape2包的dcast(传统cast类函数方案)

# 加载依赖包
library(reshape2)

# 多值列dcast转换
result <- dcast(
  data = asd,
  week ~ year,
  value.var = c("val", "cap")
)

如果需要调整列顺序和期望输出完全对齐,可以搭配dplyr的select函数实现:

library(dplyr)
result <- result %>% select(week, `2019_val`, `2020_val`, `2019_cap`, `2020_cap`)

内容的提问来源于stack exchange,提问作者manu p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:06:03