Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Stata:用另一个变量来计算一个变量?_Loops_Count_Max_Stata - Fatal编程技术网

Loops Stata:用另一个变量来计算一个变量?

Loops Stata:用另一个变量来计算一个变量?,loops,count,max,stata,Loops,Count,Max,Stata,我的小问题: 我有一张这样的桌子: 我想创建一个变量,计算每个引用的不同cat的数量。这是。。。对于A引用,有2只猫。。。3号和6号。所以我想要另一个变量dif_cat和两个2 对于此示例,它将如下所示: 我尝试过不同的方法,我总觉得自己越来越接近了,但我做不到。 我试着用“保存和恢复”来进行排序,但似乎没有达到目的 一次尝试是: egen tag = tag(cat citing) egen distinct = total(tag), by(citing) 你能帮我吗 PS:我知道这与S

我的小问题:

我有一张这样的桌子:

我想创建一个变量,计算每个引用的不同cat的数量。这是。。。对于A引用,有2只猫。。。3号和6号。所以我想要另一个变量dif_cat和两个2

对于此示例,它将如下所示:

我尝试过不同的方法,我总觉得自己越来越接近了,但我做不到。 我试着用“保存和恢复”来进行排序,但似乎没有达到目的

一次尝试是:

egen tag = tag(cat citing) 
egen distinct = total(tag), by(citing)
你能帮我吗

PS:我知道这与Stata无关,但它可能会启发那些真正使用编程语言的人,我会尝试以下方法: 循环引用列并检查是否等于之前的循环 有辅助空向量的 在第一个循环中进行第二个循环,以查看当前cat是否在矢量中,如果不在矢量中,则将其放在矢量中。 当引用更改时,我会计算辅助矩阵的长度,重置它,然后再次执行。问题是我需要在Stata代码中使用此代码:S

一种方法是:


请向我们展示您的Stata code.egen tag=tagcat引用egen distinct=totaltag,引用但不完全有效。什么是不完全有效?对于您的示例数据,它工作得很好。交叉张贴在这里,至少,为了清楚地说明这一点,它是有礼貌的。工作得很好。完成。谢谢罗伯托。
clear all
set more off

input ///
str1 citing cat
A 3
A 6
B 5
B 2
B 5
B 2
C 2
C 4
C 3
D 5
E 1
E 1
end

list, sepby(citing)

bysort citing cat: gen numvals = (_n == 1)
by citing: replace numvals = sum(numvals)
by citing: replace numvals = numvals[_N]

list, sepby(citing)