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

如何在R语言中按指定列相同值将长表转宽表重塑数据集

在R语言中实现数据行转列的重塑操作

原始数据集

ParameterDateValue
X112
Y114
Z115
X210
Y209
Z222
X308
Y307
Z320

预期结果

DateXYZ
1121415
2100922
3080720

实现方法

方法1:使用tidyr包的pivot_wider()函数

tidyr是tidyverse生态下的核心数据处理包,pivot_wider()专门用于行转列的重塑操作:

  1. 安装并加载包(首次使用时执行安装步骤):
# 安装包
install.packages("tidyr")
# 加载包
library(tidyr)
  1. 执行数据重塑:
# 构造示例数据集(若已有现成数据集可跳过此步)
df <- data.frame(
  Parameter = c("X", "Y", "Z", "X", "Y", "Z", "X", "Y", "Z"),
  Date = c(1,1,1,2,2,2,3,3,3),
  Value = c(12,14,15,10,9,22,8,7,20)
)

# 行转列操作
result_df <- pivot_wider(df, 
                         id_cols = Date,       # 作为行分组的依据列
                         names_from = Parameter,  # 转为新列名的原列
                         values_from = Value)     # 填充新列值的来源列

方法2:使用reshape2包的dcast()函数

reshape2是经典的数据重塑工具包,dcast()可快速实现此类转换:

  1. 安装并加载包(首次使用时执行安装步骤):
# 安装包
install.packages("reshape2")
# 加载包
library(reshape2)
  1. 执行数据重塑:
# 使用上述示例数据集df
result_df <- dcast(df, Date ~ Parameter, value.var = "Value")

公式Date ~ Parameter表示以Date作为行标识,Parameter的取值作为新列名,value.var指定填充单元格的数值来源列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:55:20