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

How can I transpose sections of a variable in Stata?

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

您的数据示例已经采用 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您的新变量,但新名称必须以字母或下划线开头。纯数字不能是变量名。