【问题标题】:How to transform wide type to long type in Stata when the data set is big数据集大时如何在Stata中将宽类型转换为长类型
【发布时间】:2020-05-30 19:53:29
【问题描述】:

我有以下面板数据集:

ID SEX    age_t1 age_t2 C1_Q1 C1_Q2 ...  C2_Q1 C2_Q2 ... C3_Q1 .... C4_Q1 
1  female   17    20      1    2           3     5        2           4 

C1 是 2014 年,C4 是 2017 年。
问题是问题的数量每年都不同。 我推测通过指定列数来使用stack 可能会起作用。 例如,第 5 列到第 10 列成为第一组,第 6 列到第 12 列成为第二组。 但我不知道该怎么做。

【问题讨论】:

  • 嗨!你试过reshape long吗?
  • 有很多问题要输入。有没有什么方法可以在不输入所有问题的情况下做到这一点?题目格式不同,如C1_Q1、C1_Q2A1、C1_Q2A3等。

标签: panel stata


【解决方案1】:

如果问题的数量每年都不同,那么您的建议的逻辑就很难遵循。

Stata 标签 wiki 提供了有关如何呈现数据示例的建议,这些示例通常需要简化,但应尽可能真实,而不是示意图。

这可能会有所帮助:

clear 
input ID SEX    age_t1 age_t2 C1_Q1 C1_Q2 C2_Q1 C2_Q2 C3_Q1 C3_Q2 
1  1   17    20      1    2     3     5   2     4 
end 

rename (C*_Q*) (Q*_C*)
unab stubs : *_C1
local stubs : subinstr local stubs "_C1" "", all
reshape long `stubs', i(ID SEX age*) j(year) string
destring year, ignore(_C) replace
replace year = year + 2013

list 

     +--------------------------------------------------+
     | ID   SEX   age_t1   age_t2   year   Q1   Q2   Q3 |
     |--------------------------------------------------|
  1. |  1     1       17       20   2014    1    3    2 |
  2. |  1     1       17       20   2015    2    5    4 |
     +--------------------------------------------------+

this FAQ 中记录了如何获取存根。

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2014-10-09
    相关资源
    最近更新 更多