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

Stata长表转宽表:reshape命令处理投资类数据报错解决方案

Stata长格式转宽格式报错的解决方法

报错原因

你写的代码存在两个核心问题:

  • reshape语句的i()参数只指定了year作为行唯一标识,而你实际的行标识是「年份+国家」双字段,单个年份下对应多个国家,自然会出现newid不唯一的报错
  • 不需要手动生成newid变量,且你要展开为列的是投资类型对应的Value字段,不是Investment本身,Investment是用来指定列名的类别变量

正确实现代码

第一步:预处理(可选,解决字段大小写和重复观测问题)

* 统一字段名大小写,避免匹配错误
rename Year year
rename Country country

* 如果同一「年份+国家+投资类型」存在多条重复观测,先聚合(示例为求和,可按需替换为mean等统计量)
collapse (sum) Value, by(year country Investment)

第二步:执行长转宽

* i指定行唯一标识为年份+国家,j指定类别字段为Investment,加string声明类别为字符串类型
reshape wide Value, i(year country) j(Investment) string

* 可选操作:去掉列名前的Value前缀,直接用投资类型作为列名
rename Value* *

运行结果说明

运行后每行对应唯一的年份+国家组合,每个投资类型会生成独立的列,和你的需求完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:39:02