如何在Stata中转置变量的各个部分?

问题描述

我已经看到其他一些在Stata中转置列和行的示例,但是我的问题总是有些不同。我想要做的是对条目进行排序,并基于一个行索引的变量构建几个新的列。我有一个“年份”变量和一个“数据”变量,我想为每个条目(ID)建立一个以年份标记并用“数据”中的相应数字水平填充的新列。

Current Data Format

Goal Format

解决方法

您的数据示例已经处于Stata所称的“长”布局中(有人说格式或结构),这对于大多数Stata而言都是最好的。您想要的是一个宽布局,它来自标准的reshape wide,如下所示:

* Example generated by -dataex-. To install: ssc install dataex
clear
input str1 ID float(Year XData)
"A" 2014  0
"A" 2015  7
"B" 2014 21
"B" 2015  0
"C" 2014  1
"C" 2015 18
"D" 2014 37
"D" 2015 20
"E" 2014  1
"E" 2015  3
end

. list,sepby(ID)

     +-------------------+
     | ID   Year   XData |
     |-------------------|
  1. |  A   2014       0 |
  2. |  A   2015       7 |
     |-------------------|
  3. |  B   2014      21 |
  4. |  B   2015       0 |
     |-------------------|
  5. |  C   2014       1 |
  6. |  C   2015      18 |
     |-------------------|
  7. |  D   2014      37 |
  8. |  D   2015      20 |
     |-------------------|
  9. |  E   2014       1 |
 10. |  E   2015       3 |
     +-------------------+

. reshape wide XData,i(ID) j(Year)
(note: j = 2014 2015)

Data                               long   ->   wide
-----------------------------------------------------------------------------
Number of obs.                       10   ->       5
Number of variables                   3   ->       3
j variable (2 values)              Year   ->   (dropped)
xij variables:
                                  XData   ->   XData2014 XData2015
-----------------------------------------------------------------------------


. rename XData* X*

. list

     +--------------------+
     | ID   X2014   X2015 |
     |--------------------|
  1. |  A       0       7 |
  2. |  B      21       0 |
  3. |  C       1      18 |
  4. |  D      37      20 |
  5. |  E       1       3 |
     +--------------------+

如上所述,您可以rename新变量,但是新名称必须以字母或下划线开头。裸露的数字不能是变量名。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...