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

R语言如何将长表转换为宽表,应如何处理对应取值字段

R长表转宽表操作方案

你需要实现的是长表转宽表的结构化转换,推荐使用tidyverse生态的pivot_wider函数完成,具体操作如下:

操作代码

首先加载依赖包,再执行转换:

# 加载tidyverse(包含dplyr和tidyr工具集)
library(tidyverse)

# 执行宽表转换
df_wide <- df %>%
  pivot_wider(
    id_cols = c(Class, standard), # 保留为行标识的分组列,不参与展开
    names_from = Subject, # 取该列的唯一值作为新生成的宽表列名
    values_from = Score, # 取该列的数值填充到新生成的宽表单元格中
    values_fill = NA # 缺失单元格默认填充为NA,如需统一填0可修改为values_fill = 0
  )

备选方案(reshape2包)

如果习惯使用reshape2的dcast函数,也可以用以下代码实现完全相同的转换效果:

library(reshape2)
df_wide <- dcast(df, Class + standard ~ Subject, value.var = "Score", fill = NA)

转换后结果示例

最终输出的宽表结构如下:

ClassstandardMathELAPEArt
AA95NANANA
AUNA80NANA
BB7382NANA
BUNANA75NA
CUNA80NANA
CC82NANA88

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:39:02