假设我有一个包含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)。
我可以使用哪种命令来获取新数据集?
答案 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 |
+------------------------------------------------------------+