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

在R语言中如何对多列data.frame执行reshape重塑操作

R data.frame 长表转宽表实现方案

问题原因

原有代码运行不符合预期,是因为你没有指定需要宽化的数值列为Area_ha2,同时数据集中的Bacia列既没有被设为id变量,也没有提前剔除,导致reshape函数默认对所有非id、非time变量做宽化处理,输出多余列。

可直接运行的调整代码

方案1:基础包reshape函数调整

补充v.names参数指定要展开的数值列,同时将Bacia加入id变量即可:

reshape(x, 
        idvar = c("Bacia", "ano"), 
        timevar = "Classe2", 
        v.names = "Area_ha2",
        direction = "wide")

若不需要保留Bacia列,可提前筛选数据集:

reshape(x[, c("ano", "Classe2", "Area_ha2")],
        idvar = "ano",
        timevar = "Classe2",
        direction = "wide")

方案2:tidyverse pivot_wider实现(更推荐,逻辑清晰)

library(tidyr)
pivot_wider(x,
            id_cols = c(Bacia, ano),
            names_from = Classe2,
            values_from = Area_ha2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:45:02