我有一个看起来像这样的数据集(var1
,var2
,var3
,......的可能值为1,2,3,4,5,6)。
var1
(3,3,4,1,2,4,5,6 ......)var2
(4,5,2,2,3,1,6,6。 ..)var3
(1,2,2,4,2,3,6,5 ......)
我想要按值(1,2,3,4,5,6)折叠var1 var2 var3
...的值的计数,并创建一个这样的数据集:
value
(1,2,3,4,5,6)
var1_count
(1,1,2,2,1,1)
var2_count
(1,2,1,1,1,2)
var3_count
(1,3,1,1,1,1)
我尝试了collapse(count)
命令,但我没有分组变量。有没有办法按变量汇总变量?
答案 0 :(得分:2)
请阅读有关MCVE的建议:https://stackoverflow.com/help/mcve
您的数据可以按如下方式阅读。
clear
mat var1 = (3,3,4,1,2,4,5,6)
mat var2 = (4,5,2,2,3,1,6,6)
mat var3 = (1,2,2,4,2,3,6,5)
set obs 8
forval j = 1/3 {
gen var`j' = var`j'[1, _n]
}
list, sep(0)
+--------------------+
| var1 var2 var3 |
|--------------------|
1. | 3 4 1 |
2. | 3 5 2 |
3. | 4 2 2 |
4. | 1 2 4 |
5. | 2 3 2 |
6. | 4 1 3 |
7. | 5 6 6 |
8. | 6 6 5 |
+--------------------+
获取该表格的一种方法是使用
安装tabm
ssc install tab_chi
help tabm
tabm var?
| values
variable | 1 2 3 4 5 6 | Total
-----------+------------------------------------------------------------------+----------
var1 | 1 1 2 2 1 1 | 8
var2 | 1 2 1 1 1 2 | 8
var3 | 1 3 1 1 1 1 | 8
-----------+------------------------------------------------------------------+----------
Total | 3 6 4 4 3 4 | 24
tabm
还提供了replace
选项,可将列表另存为新数据集。