stata - 将数据集从长转换为宽
问题描述
我对要转换的数据集有疑问。
它看起来像这样:
AreaID VariableName Year Value
1 Var1 2000 20
1 Var2 2000 30
1 Var1 2001 21
1 Var2 2001 32
2 Var1 2000 50
2 Var2 2000 55
....etc.
我希望变量VariableName
是水平的,看起来像这样
AreaID Year Var1 Var2
1 2000 20 30
1 2001 21 32
2 2000 50 55
....etc.
我更愿意在 Stata 中处理这个问题,但我也对其他程序持开放态度。
解决方案
这是reshape
Stata中的标准。请参阅该命令的帮助和手册条目。
clear
input AreaID str4 VariableName Year Value
1 Var1 2000 20
1 Var2 2000 30
1 Var1 2001 21
1 Var2 2001 32
2 Var1 2000 50
2 Var2 2000 55
end
reshape wide Value, i(AreaID Year) j(VariableName) string
rename (Value*) (*)
list, sepby(AreaID)
+-----------------------------+
| AreaID Year Var1 Var2 |
|-----------------------------|
1. | 1 2000 20 30 |
2. | 1 2001 21 32 |
|-----------------------------|
3. | 2 2000 50 55 |
+-----------------------------
推荐阅读
- android - 片段视图未在 ConstraintLayout 中完全滚动
- pandas - 我想将一列的元素复制到另一列,但跳过一个元素并忽略最后一个元素,因为它会产生错误
- c - 连接字符串和结构成员以形成另一个结构
- html - 当我使用 Thymeleaf 运行 Spring Boot 项目时,浏览器不会加载 css 文件,但 href 和 th:href 的路径是正确的
- reactjs - Recharts:如何在工具提示中只显示一个数据点的值?
- angular - 模块联合共享服务
- ruby-on-rails - 如何在 Rails 命名空间中的所有控制器中包含控制器关注点
- git - Gerrit 禁止推送空补丁集
- html - 如何修复水平拉伸的电子邮件签名宽度?
- json - DC.JS 如何处理具有不同数量属性的对象