如何在我的数据集中列出负值? [英] How can I list negative values across my dataset?

查看:9
本文介绍了如何在我的数据集中列出负值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的数据集大约有100个变量和1000行,类似于下图:

.      var1  var2  var3  var4
AL      10    11    12     13 
AK      -1    0      0     18
AZ      5     -5    -2     22
VA      15    16     0      0

如何列出具有负值的变量/观察值?

例如,我想列出AK具有负var1AZ具有负var2var3

推荐答案

以下是如何为每个var变量创建标记变量的示例:

clear

input   str2 state  var1  var2  var3  var4
AL      10    11    12     13 
AK      -1    0      0     18
AZ      5     -5    -2     22
VA      15    16     0      0
end

foreach var in var1 var2  var3  var4 {
    generate tag_`var' = `var' < 0
}

list

     +-------------------------------------------------------------------------------+
     | state   var1   var2   var3   var4   tag_var1   tag_var2   tag_var3   tag_var4 |
     |-------------------------------------------------------------------------------|
  1. |    AL     10     11     12     13          0          0          0          0 |
  2. |    AK     -1      0      0     18          1          0          0          0 |
  3. |    AZ      5     -5     -2     22          0          1          1          0 |
  4. |    VA     15     16      0      0          0          0          0          0 |
     +-------------------------------------------------------------------------------+

然后您可以执行以下操作:

list state var1 if tag_var1 == 1

     +--------------+
     | state   var1 |
     |--------------|
  2. |    AK     -1 |
     +--------------+

list state var* if tag_var1 == 1 | tag_var2 == 1 | tag_var3 == 1 | tag_var4 == 1

     +-----------------------------------+
     | state   var1   var2   var3   var4 |
     |-----------------------------------|
  2. |    AK     -1      0      0     18 |
  3. |    AZ      5     -5     -2     22 |
     +-----------------------------------+

如果不需要标记变量的额外灵活性,只需执行以下操作:

list state var1 if var1 < 0

编辑:

或者,您也可以执行以下操作:

preserve

generate obsno = _n
reshape long var, i(obsno)

rename var value
generate var = "var" + string(_j)

list state var obsno value if value < 0, noobs sepby(state)

  +------------------------------+
  | state    var   obsno   value |
  |------------------------------|
  |    AK   var1       2      -1 |
  |------------------------------|
  |    AZ   var2       3      -5 |
  |    AZ   var3       3      -2 |
  +------------------------------+

restore

这篇关于如何在我的数据集中列出负值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆