【问题标题】:Construct new variable from >3 categorical variables (+maintain column names) for mosaic plot in Stata从> 3个分类变量(+维护列名)为Stata中的马赛克图构造新变量
【发布时间】:2015-12-09 04:39:27
【问题描述】:

我的问题是此处找到的问题的扩展:Construct new variable from given 5 categorical variables in Stata

我是 R 用户,我一直在努力适应 Stata 语法。另外,我已经习惯了在网上搜索 R 文档/示例,但没有找到尽可能多的 Stata 资源,所以我来到了这里。

我有一个数据集,其中行代表个人,列记录这些人的各种属性。有 5 个分类变量(白人、西班牙裔、黑人、亚洲人、其他)具有二进制响应数据,0 或 1(“否”或“是”)。我想使用 spinplots 包创建种族与响应数据的马赛克图。但是,我相信我必须首先将所有 5 个分类变量组合成一个具有 5 个级别的分类变量来维护标签(这样我就可以看到每个种族的响应率。)我一直在玩 egen 函数但没有无法让它工作。任何帮助将不胜感激。

编辑:添加了对我的数据外观和我希望它的外观的描述。

我现在的数据:

person_id,black,asian,white,hispanic,responded

1,0,0,1,0,0

2,1,0,0,0,0

3,1,0,0,0,1

4,0,1,0,0,1

5,0,1,0,0,1

6,0,1,0,0,0

7,0,0,1,0,1

8,0,0,0,1,1

我想要的是通过制表命令生成一个表格来进行以下操作:

respond, black, asian, white, hispanic
responded to survey |    20, 30, 25, 10, 15

did not respond     |    15, 20, 21, 23, 33

【问题讨论】:

  • 请阅读帮助中心Asking部分,特别是stackoverflow.com/help/mcve。你本质上是在让人们猜测你的问题是什么。我们没有关于您的数据结构、您尝试过的内容以及您面临的问题的信息。
  • 了解Stata并愿意提供帮助的人不一定会理解您所说的“标题”和“数据框”(我相信来自R的术语)的意思。尝试使用更中性的术语或阅读 Stata 的 User's Guide(无论如何都是必须的),以便更好地沟通并增加获得相关答案的机会。

标签: r stata mosaic-plot


【解决方案1】:

您似乎想要一个指示变量而不是多个 {0,1} 虚拟变量。最简单的方法可能是循环;另一种选择是使用cond() 生成一个新的指示变量(请注意,您可能希望在“其他”组中捕获所有种族假人都是0 的受访者),标记其值(以及@ 987654323@),然后创建您的频率表:

clear
input person_id black asian white hispanic responded
1 0 0 1 0 0
2 1 0 0 0 0
3 1 0 0 0 1
4 0 1 0 0 1
5 0 1 0 0 1
6 0 1 0 0 0
7 0 0 1 0 1
8 0 0 0 1 1
9 0 0 0 0 1
end

gen race = "other"
foreach v of varlist black asian white hispanic {
    replace race = "`v'" if `v' == 1
}

label define race2 1 "asian" 2 "black" 3 "hispanic" 4 "white" 99 "other"
gen race2:race2 = cond(black == 1, 1, ///
                cond(asian == 1, 2, ///
                cond(white == 1, 3, ///
                cond(hispanic == 1, 4, 99))))

label define responded 0 "did not respond" 1 "responded to survey"
label values responded responded
tab responded race

结果

                    |                          race
          responded |     asian      black   hispanic      other      white |     Total
--------------------+-------------------------------------------------------+----------
    did not respond |         1          1          0          0          1 |         3 
responded to survey |         2          1          1          1          1 |         6 
--------------------+-------------------------------------------------------+----------
              Total |         3          2          1          1          2 |         9 

tab responded race2 产生相同的结果,但顺序不同(按race2 的实际值,而不是值标签的字母顺序)。

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多