基于Stata中的非连续ID创建连续ID

基于Stata中的非连续ID创建连续ID,stata,Stata,给定Stata中的以下变量(id和partner),我想创建一个新变量(pid),它只是id中的连续合作伙伴计数器(如您所见,partner不是连续的)。这里是一个MWE: clear input id partner pid 1 1 1 1 1 1 1 3 2 1 3 2 2 2 1 2 3 2

给定Stata中的以下变量(
id
partner
),我想创建一个新变量(
pid
),它只是
id
中的连续合作伙伴计数器(如您所见,
partner
不是连续的)。这里是一个MWE:

clear
input   id  partner pid
        1   1       1
        1   1       1
        1   3       2
        1   3       2
        2   2       1
        2   3       2
        2   3       2
        2   3       2
        2   5       3
        2   5       3
end

另一种方法:
bysort-id(partner):gen-pid=sum(partner!=partner[\n-1])
非常感谢,Maarten!我会等几分钟,然后接受你的回答。
// create example data
clear
input   id  partner
        1   1      
        1   1      
        1   3      
        1   3     
        2   2     
        2   3     
        2   3     
        2   3     
        2   5     
        2   5     
end

// create pid
bysort id partner : gen pid = _n == 1
by id : replace pid = sum(pid)

// admire the result
list, sepby(id)