在Stata中重塑数据

在Stata中重塑数据,stata,data-management,Stata,Data Management,我有一个由研究组成的数据集。在一些研究中有多个数据点(DP)。我的数据是结构化的,因此每一行都是一个单独的数据点。此外,我还有一个单独的变量表示具体的研究文章 我需要从与研究(而非DPs)相关的数据中获得汇总统计数据。换句话说,我需要让每一行都成为研究性学习,DPs成为计数 我使用合同尝试了下面的代码。它适用于list命令。但是,我需要汇总统计数据,并且我希望获得多个变量的汇总,并在数据组织好后将它们合并到一个表中 contract study nation drop _freq study c

我有一个由研究组成的数据集。在一些研究中有多个数据点(DP)。我的数据是结构化的,因此每一行都是一个单独的数据点。此外,我还有一个单独的变量表示具体的研究文章

我需要从与研究(而非DPs)相关的数据中获得汇总统计数据。换句话说,我需要让每一行都成为研究性学习,DPs成为计数

我使用
合同
尝试了下面的代码。它适用于
list
命令。但是,我需要汇总统计数据,并且我希望获得多个变量的汇总,并在数据组织好后将它们合并到一个表中

contract study nation
drop _freq study
contract nation
list
例如:

原始数据:

学习 数据处理 年 国家 1. 1. 2005 巴西 1. 2. 2005 巴西 1. 3. 2005 巴西 1. 4. 2005 法国 2. 5. 2006 巴西 2. 6. 2006 意大利 3. 7. 2010 巴西 3. 8. 2010 加拿大 4. 9 2011 加拿大 5. 10 2015 巴西 6. 11 2015 加拿大
egen
将有助于汇总统计数据和图表。它的
tag()
功能只允许您对每个国家标记一次

请注意,Stata中的
dataex
是给出代码示例的更好方法,如Statalist FAQ和Stata标签中所述

* Example generated by -dataex-. To install: ssc install dataex
clear
input byte(Study DP) int Year str6 Nation
1  1 2005 "Brazil"
1  2 2005 "Brazil"
1  3 2005 "Brazil"
1  4 2005 "France"
2  5 2006 "Brazil"
2  6 2006 "Italy" 
3  7 2010 "Brazil"
3  8 2010 "Canada"
4  9 2011 "Canada"
5 10 2015 "Brazil"
6 11 2015 "Canada"
end

egen tag = tag(Nation)

egen count = count(DP) , by(Nation)

histogram count if tag, discrete freq width(1) xla(1/6)