一般問題:我不明白如何根據其他組的條件創建值。我想這樣做:根據來自另一個組的數據有條件地標記一組中的行
gen x = cond(cond1==1 & cond2==1, value[**of some other row in a different group**], other_value)
具體問題:給出了基於id
永遠不會改變的是有一組龐大的數據集,並做了二代身份證(co_id
)。每個組有多個行,在time
中重複。每行有一個標誌(is_a
),表示在某個時間與另一個組(即id
)的關係。該關係通過更改爲co_id
來表示,因此它等於另一個組。
我試圖做兩件事情:當年
- 的標記行(
is_a == 1
)發現新co_id
所屬的組的id
,並 - 對於其他羣體,旗該連接被製成
在上面的例子,GROU p 111
在時間11
上連接到組222
(僅連接一次)。基於新的co_id
'xzx'
我想指出從那時起222
的連接id
。請注意,其他組可能有co_id
,但正確的是co_id
在數據中的最早出現(所以其中一個是222
而不是777
)。
對於組222,然後我標記連接的時間(time == 11
)。
樣本數據:
clear
input int id byte(is_a time) str3 co_id
111 0 10 "abc"
111 0 10 "abc"
111 1 11 "xzx"
111 1 11 "xzx"
111 1 12 "xzx"
111 1 12 "xzx"
222 0 10 "xzx"
222 0 10 "xzx"
222 0 11 "xzx"
222 0 11 "xzx"
222 0 12 "xzx"
222 0 12 "xzx"
777 1 13 "xzx"
end
預先感謝您!
請提供人員可以複製和粘貼的數據示例。 'ssc inst dataex'可以讓你提供一個小數據例子作爲'input'代碼。有多少人願意重新輸入他們在圖片中看到的內容?此外,術語_rows_與Stata的討論不同,正如_observations_將用於電子表格討論。 –
有一個名爲'vlookup'的用戶編寫的命令,您可能會重複使用它的方法,但它不會正常工作。 –
@NickCox補充說。對不起,謝謝! –