Plot 具有多变量信息的Stata图
我有10个二进制变量-var1,var2,…,var10回答某个问题的“是”或“否”(1或0),但条件不同。我想在stata中创建一个条形图,显示每个变量回答“否”的人数比例(单个图)。我该怎么做?如果我对频率使用常规条形图命令Plot 具有多变量信息的Stata图,plot,stata,Plot,Stata,我有10个二进制变量-var1,var2,…,var10回答某个问题的“是”或“否”(1或0),但条件不同。我想在stata中创建一个条形图,显示每个变量回答“否”的人数比例(单个图)。我该怎么做?如果我对频率使用常规条形图命令 graph bar, over(varlist) 我得到一个错误,因为over()只接受一个变量,而不是varlist。这样的事情在R或Python中很容易做到,但我不确定如何在stata中做到这一点。我的数据如下所示: +------------------
graph bar, over(varlist)
我得到一个错误,因为over()
只接受一个变量,而不是varlist。这样的事情在R或Python中很容易做到,但我不确定如何在stata中做到这一点。我的数据如下所示:
+-------------------------------+
| id var1 var2 var3 |
|-------------------------------|
1. | 1 0 0 1 |
2. | 2 1 1 1 |
3. | 3 0 1 1 |
+-------------------------------+
如上所述,每个人用“是”或“否”回答了3个问题(相反,相同的问题以三种不同的方式提出)。我想生成一个带有三个条形图(“var1”、“var2”、“var3”)的条形图,每个条形图表示对问题回答“否”的人数比例(在示例数据中分别为0.67、0.33和0)。这里没有可复制的数据示例。Stata tag wiki提供了关于如何给出数据示例的非常详细的建议 在我写这篇文章的时候,直接绘制零的分数并不会产生任何明显的技巧,但这里有一个解决方法。10个变量的原理与这里发明的4个变量的原理没有什么不同。主要思想是,
图形hbar
(或图形栏
或图形点
)的默认值是显示平均值,二进制变量的平均值是一个比例
clear
set seed 2803
set obs 10
forval j = 1/4 {
generate var`j' = runiform() > (`j' * 0.2)
}
forval j = 1/4 {
generate nvar`j' = 1 - var`j'
label var nvar`j' "var`j'"
}
graph hbar nvar* , ascategory ytitle(fraction of Nos) name(G1, replace)
statplot nvar*, ytitle(fraction of Nos) name(G2, replace)
statplot
解决方案(取决于使用ssc install statplot
安装该命令)只是一种替代方案。个人认为,与默认的图形hbar
相比,它的直接结果更接近文明的图形。但这在原则上并没有什么不同,通过直接为graph hbar
列出更多选项,您可以更进一步
使用
graph hbar
而不是graph bar
是个人的选择。但是,如果您的真实数据有变量标签或更长的名称,那么为10个变量显示可读的空间可能是中等规模的交易。哦,对不起,这是我第一次发布有关stata的帖子。我需要给出什么样的数据示例?理解,但正如Stata tag wiki所解释的那样。我不会写下已经详细解释过的内容。现在可以了吗?是的,从这个意义上讲,您已经给出了示例数据。不,从某种意义上说,任何人都必须在它成为Stata数据之前对其进行编辑。本质上,命令dataex
的存在是为了提供数据示例(最坏的情况下,您需要使用ssc install dataex
安装它)。我会尽力取悦大家,说我没有投反对票,但投反对票的人都有理由。如果没有可复制的示例,这不是一个好问题。