【问题标题】:Reshaping Data in Stata在Stata中重塑数据
【发布时间】:2020-12-29 04:37:25
【问题描述】:

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

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

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

contract study nation
drop _freq study
contract nation
list

示例:

原始数据:

Study DP Year 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

我需要什么:

Year f (of studies)
2005 1
2006 1
2010 1
2011 1
2015 2

而且我还需要上表的直方图。

Nation f (of studies)
Brazil 4
Canada 3
France 1
Italy 1

我有更多的变量需要这个。而且他们需要的不仅仅是频率(例如mean、sd、var)。因此,无论给出什么解决方案,都需要对变量进行汇总。

【问题讨论】:

    标签: stata data-management


    【解决方案1】:

    egen 将有助于汇总统计数据和图表。它的tag() 功能可以让您只标记每个国家/地区一次。

    请注意,Stata 中的dataex 是提供代码示例的更好方式,如 Statalist 常见问题解答和 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多