gpt4 book ai didi

stata - 合并重叠的分类变量

转载 作者:行者123 更新时间:2023-12-02 05:36:24 25 4
gpt4 key购买 nike

我正在尝试将 Stata 中的两个分类变量(例如 var1var2)“组合”为一个新的(也是分类的)变量(例如 res)。

下面的示例说明了我想要实现的目标:

var1    var2    res
1 1 A
1 2 A
2 1 A
3 3 B
4 2 A
5 4 D

此示例的作用是将“重叠”的 var1var2 的所有类别组合起来。

这里,var1 == 1var2 == 1 对最初形成一个组 (res== A)。包含 var1 == 1var2 == 1 的所有其他对应属于同一组(因此第 2 行中的 res== A 和3)。因为在第 2 行中我们有 var2==2,所以任何包含 var2==2 的对都应该属于同一组。这就是为什么在第 4 行 res== A

查看此问题的另一种方法是使用以下矩阵:

     |  1   2   3   4
-----------------------
1 | 1 1
2 | 1
3 | 1
4 | 1
5 | 1

由于元素 [1,1] 不为空(或零),因此 1 行和 1 列中的所有元素都必须属于到同一个组。因为[1,2]不为空,所以行1、列2也是如此。等等等等。您决定从哪一行/哪列开始并不重要。

egen group 单独并不能解决问题。

有什么想法吗?

最佳答案

听起来您想在 var2 的值相同的情况下进一步对 var1 进行分组。如果是这种情况,那么您可以使用我编写的名为 group_id 的程序,该程序可从 SSC 获取。要安装它,请在 Stata 的命令窗口中键入:

ssc install group_id

以下是如何使用它的示例:

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(var1 var2) str1 res
1 1 "A"
1 2 "A"
2 1 "A"
3 3 "B"
4 2 "A"
5 4 "D"
end

gen long wanted = var1
group_id wanted, matchby(var2)

list, sep(0)

和结果:

. list, sep(0)

+----------------------------+
| var1 var2 res wanted |
|----------------------------|
1. | 1 1 A 1 |
2. | 1 2 A 1 |
3. | 2 1 A 1 |
4. | 3 3 B 3 |
5. | 4 2 A 1 |
6. | 5 4 D 5 |
+----------------------------+

关于stata - 合并重叠的分类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com