Stata:在不考虑缺失值的情况下查找变量的重复项

时间:2015-10-13 19:19:13

标签: duplicates stata

假设我有一个包含2个观察值和7个变量的数据集(其中。表示缺失值):

   crop1   crop2   crop3   crop4   nw1   nw2   nw3
   3       7       2       .       3     7     .
   5       9       .       .       5     .     .

现在,我想通过生成一个名为 duplicates 的新变量,找到Group1(crop1-crop4)变量和Group2(nw1-nw3)变量之间重复值的数量,排除缺失值。那么新的数据集如下:

   crop1   crop2   crop3   crop4   nw1   nw2   nw3   duplicates
   3       7       2       .       3     7     .     2
   5       9       .       .       5     .     .     1

因为第一次观察发现重复2个值(3,7),并且第二次观察发现重复1个值(5)。

我可以使用哪种命令来获取新数据集?

1 个答案:

答案 0 :(得分:3)

我不理解比较变量的规则,例如,您有4个crop变量和3个nw变量。

这是你问题的一个开始。如果您的规则不同,请准确说明。

我忽略crop4并将每个比较计为重复,其中变量与具有相同数字后缀的名称相同,但它们可能不会丢失。

clear 
input crop1   crop2   crop3   crop4   nw1   nw2   nw3
   3       7       2       .       3     7     .
   5       9       .       .       5     .     .
end 

gen duplicates = 0 

forval j = 1/3 { 
   replace duplicates = duplicates + ((crop`j' == nw`j') & !missing(crop`j', nw`j')) 
} 

list 

     +------------------------------------------------------------+
     | crop1   crop2   crop3   crop4   nw1   nw2   nw3   duplic~s |
     |------------------------------------------------------------|
  1. |     3       7       2       .     3     7     .          2 |
  2. |     5       9       .       .     5     .     .          1 |
     +------------------------------------------------------------+