我一直在尋找這個問題的答案,但無法找到任何。我有兩組變量分別將數據集中的人與他們的母親和父親連接起來。我的目標是將人與他們的兄弟姐妹聯繫起來。我的數據集看起來是這樣的:在if語句中的價值
person_id mom_id father id child_1_mom child_2_mom child_1_dad child_2_dad
我只是在保持孩子誰擁有同一個父親和母親,這意味着我正在觀察失蹤(只有孩子變量)如果child_*_mom
的一個興趣人員ID與child_*_father
ID中的任何一個都不匹配。我一直在嘗試不同的事情,但我最好的猜測就是這樣的代碼,只是爲了說明我在做什麼。
forvalues i=1(1)17 {;
replace child_`i'_mom="" if
(forvalues j=1(1)17 {;
(child_`i'_mom!=child_`j'_dad) &
};
(child_`i'_mom!=child_18_dad));
};
正如你所看到的,這是一個有點創意,但最好的,我想出了。我有17個孩子變量爲母親和18個孩子變量爲父親(一些在我的數據集有18個孩子)。我不想手動這樣做的原因是我必須在上面做20年以上的工作,而且我打算在以後爲宏觀和母親宏觀化子變量的數量。
我的問題是:有沒有辦法在if
語句內在循環中執行forvalues
循環?還是有更聰明的方法來解決這個問題?
進一步解釋:
好了,所以我會盡力闡述遠一點的問題。
最初的數據集看起來像這樣
person_id mother_id father_id
,我已經排序的數據,首先在mother_id
方面,並提出了一個變量,使得數據看起來像這樣
person_id mother_id mother_n
11 1 1
12 1 2
13 2 1
14 2 2
15 2 3
等等。這對父母都是這樣做的。然後我重塑這兩個數據集,從而
mother_id child_1 child_2 child_3
1 11 12 .
2 13 14 15
由此產生的數據集(對於父親和母親),我已經合併這些數據集到原始數據集,從而
person_id mother_id mother_n child_1_m child_2_m child_3_m child_1_f child_2_f
11 1 1 11 12 . ? ?
12 1 2 11 12 . ? ?
13 2 1 13 14 15 ? ?
14 2 2 13 14 15 ? ?
15 2 3 13 14 15 ? ?
從而我對母親的孩子和父親的孩子都有變數。接下來,我想使每個變量檢測都不存在,其中child_ID
不在child_*_m
組變量和child_*_f
變量組中。
這樣的想法是,我想打一個自動的過程,纔會這樣一個循環中,而無需手動不必`通過了該計劃時予以更換......」無數次,因爲我有做多年,不同的兒童最大數量。
希望這個清晰。
'if' *循環內'if'限定符:無法完成。我迷失在爲什麼這些數據是以這種形式出現的。我可以想象人物標識符,母親標識符,父親標識符,並可以看到父標識符可能會丟失。爲什麼有這麼多變數? –
這來自丹麥的數據,包括某一年在該國的每個人。最初,原始數據包括丹麥的每個人,併爲他們的母親和他們的父親標識。我們需要將人們的教育水平與兄弟姐妹(同父母)進行比較。因此,我正在製作一個數據集,通過他們的母親和父親標識符,將每個特定人員(母親或父親)的每個孩子與丹麥的每個人合併,所以是。現在看起來有點奇怪,但我只是在製作數據 - 並沒有對它進行分析。 – amri