考慮虛構數據來說明我的問題,其中實際上包含數千行。根據因子創建ID並用Stata填充
圖1
每個單獨的特徵在於,附連到A,B,C,d,E值。在圖1中,我展示了一些缺少某些特徵的個體。你有什麼想法,我怎樣才能得到以下完成的表格(圖2)?
圖2
與圖1中的ID我可以使用的carryforward
命令中的值進行填充。但由於每個人都有不同數量的行,我不知道如何創建ID。
編輯:所有的人都分享特徵「A」。
編輯:現有的觀察順序是信息性的。
考慮虛構數據來說明我的問題,其中實際上包含數千行。根據因子創建ID並用Stata填充
圖1
每個單獨的特徵在於,附連到A,B,C,d,E值。在圖1中,我展示了一些缺少某些特徵的個體。你有什麼想法,我怎樣才能得到以下完成的表格(圖2)?
圖2
與圖1中的ID我可以使用的carryforward
命令中的值進行填充。但由於每個人都有不同數量的行,我不知道如何創建ID。
編輯:所有的人都分享特徵「A」。
編輯:現有的觀察順序是信息性的。
要檢測id的變化,我們的想法是比較每行中char的先例值是否大於=。
只有在您的數據已訂購時纔有效,但在數據中似乎是強制性的。
gen id= 1 if (char[_n-1] >= char[_n]) | _n ==1
replace id = sum(id) if id==1
replace id = id[_n-1] if missing(id)
fillin id char
drop _fillin
如果一個人只爲特徵A和C和另一個人,因爲只有特性d和E,這是不行的,但它似乎是不可能與您的數據來檢測。
Thanks @timat!這是一個非常好的和有效的解決方案。讓我補充一點,它也適用於我的一般問題,因爲所有個人至少共享特徵A. – emeryville
另請參閱數據管理常見問題,例如http://www.stata.com/support/faqs/data-management/groups -by先發生/ –
謝謝@timat。我想過'fillin',我可能錯過了一些東西。但對於'fillin',你需要指定多個變量。所以,更準確地說,我不想創建具有所有char和values組合的缺失值的觀察值,我只想添加缺少的特徵以獲得每個ID 5行。 – emeryville
我在這裏看不到一個確切的規格,確切地說我們可以做什麼,不能做什麼。看來現有的觀察順序(「行」不是標準的Stata術語)是信息性的,但這裏沒有指示標識符變量。 –
感謝Nick的評論。這是正確的,現有的觀察順序是信息性的。一個天真的問題:是否有任何理由爲什麼Stata使用「觀察」而不是「行」?或者爲什麼不呢? – emeryville