首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用两个j变量(其中之一是字符串)重新构造数据?

如何使用两个j变量(其中之一是字符串)重新构造数据?
EN

Stack Overflow用户
提问于 2016-07-21 08:57:12
回答 1查看 338关注 0票数 0

我的数据看起来有点像这样。第一行是变量名,其余是我的值。year描述选举的年份,nutsid是一种区域标识符,nutsname是该区域的名称。现在我想把重点放在接下来的三个方面:spoovpfpo是选举中政党的名字。我希望将它们合并到一个名为party的变量中,并保持我现在的长格式。

代码语言:javascript
复制
   | year     nutsid    nutsname        spo      ovp      fpo|
1. | 2008     AT11      Burgenland    73565    52531    29812|
2. | 1990     AT11      Burgenland    88547    62675    19508|
3. etc

到目前为止,我尝试的是使用reshape命令首先将其重新格式化为宽格式,然后用以下方式重命名它们,比如p_spop_ovpp_fpo

代码语言:javascript
复制
reshape long p_, i(nutsid) j(year party) string

我不能说这是一个聪明的想法,也不能说它有效,因为它只是给了我一个名为year的新id,它的值"party"一遍又一遍地写在它下面。

但我在想,我是否还应该使用另一个命令来获取我需要的信息:

代码语言:javascript
复制
   | year     nutsid    nutsname      party  votes|
1. | 2008     AT11      Burgenland    spo    73565|    
2. | 2008     AT11      Burgenland    ovp    52531|    
3. | 2008     AT11      Burgenland    fpo    29812|    
4. | 1990     AT11      Burgenland    spo    88547|
5. | 1990     AT11      Burgenland    ovp    62675|
6. | 1990     AT11      Burgenland    fpo    19508|
7. etc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 10:21:48

这里的一些次要细节是混淆或不明确的:

  1. 在Stata变量中,名称不被视为或描述为数据的“第一行”,尽管它们将作为标题出现在(例如)中。数据编辑器。Stata不是电子表格应用程序。
  2. 您提到的reshape命令要求spo ovp fpo be renamed到p_spo p_ovp p_fpo reshape之前;此重命名不遵循reshape
  3. 您到底做了什么还不清楚,因为您只给出了部分语法。

也就是说,您想要的是一个简单的reshape

代码语言:javascript
复制
clear 
input year str4 nutsid str10  nutsname        spo      ovp      fpo
2008     AT11      Burgenland    73565    52531    29812
1990     AT11      Burgenland    88547    62675    19508
end 
rename (spo ovp fpo) (votes=) 
reshape long votes, i(nutsid year) j(party) string 
list, sepby(nutsid year) 

     +--------------------------------------------+
     | nutsid   year   party     nutsname   votes |
     |--------------------------------------------|
  1. |   AT11   1990     fpo   Burgenland   19508 |
  2. |   AT11   1990     ovp   Burgenland   62675 |
  3. |   AT11   1990     spo   Burgenland   88547 |
     |--------------------------------------------|
  4. |   AT11   2008     fpo   Burgenland   29812 |
  5. |   AT11   2008     ovp   Burgenland   52531 |
  6. |   AT11   2008     spo   Burgenland   73565 |
     +--------------------------------------------+

在这个数据视图中,您有两个所谓的i变量和一个j变量。

请注意这里使用的input代码提供了一个数据示例,该示例将在不需要您的示例所需的工程的情况下运行。您可以使用dataex安装命令ssc inst dataex,这样做也很容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38499536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档