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

R语言中使用dcast函数完成长表转宽表的操作求助

R语言长表转宽表实现方法

方案1:使用reshape2包的dcast函数

调用dcast不符合预期通常是未正确指定取值列,或是存在重复分组时未指定聚合函数,正确实现代码如下:

# 加载依赖包
library(reshape2)

# 构造示例数据,可替换为你的真实数据表
df <- data.frame(
  Data = c("X", "X", "Y", "Y", "Z", "Z"),
  Flag = c(1, 2, 1, 2, 1, 2),
  Answer = c("Yes", "Yes", "Yes", "No", "Yes", "Yes")
)

# 长转宽核心代码
wide_df <- dcast(df, Data ~ Flag, value.var = "Answer")

如果你的真实数据中存在同一个Data+Flag组合对应多个Answer的情况,需要补充指定聚合函数,比如取第一个有效值:

wide_df <- dcast(df, Data ~ Flag, value.var = "Answer", fun.aggregate = function(x) x[1])

方案2:使用tidyverse生态的pivot_wider函数

如果你常用tidyverse系列工具,也可以用更直观的宽表转换函数实现:

library(tidyr)

wide_df <- pivot_wider(df, names_from = Flag, values_from = Answer)

两种方法输出的结果都和要求的目标格式完全一致:

Data12
XYesYes
YYesNo
ZYesYes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:15:07