跨列简单计数

时间:2013-01-28 14:55:47

标签: stata

在Stata中,如果你有这样的数据:

Location    Person 1 Gifts    Person 2 Gifts    Person 3 Gifts     Person 4 Gifts
   1               2                 7                 1                        
   2               4                 1                 12                  2
   3               5                 5                 5                   5
   4               4                                   1

创建新变量的最简单方法是什么,'over_three_less_than_six'计算每个位置有多少人提供3个或更多礼物但少于6个。我希望它忽略缺失值。因此,在上面的示例中,新列将输出:

over_three_less_than_six
          0
          1
          4
          1

1 个答案:

答案 0 :(得分:2)

我想在变量命名方面有所不同!我假设变量如gift1 ... gift4

gen count = 0 

quietly forval j = 1/4 { 
    replace count = count + inrange(gift`j', 3, 5) 
}

另见技术详述

SJ-9-1 pr0046。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。说Stata:Rowwise         (帮助rowort,如果安装了rowranks)。 。 。 。 。 。 。 。 。 。 。 N. J.考克斯         Q1 / 09 SJ 9(1):137--157         展示了如何利用函数,egen函数和Mata         用于行方向;引入了rowort和rowranks

.pdf http://www.stata-journal.com/sjpdf.html?articlenum=pr0046

免费提供
inlist(gift`j', 3, 4, 5)

也可以代替inrange()来电。