我很難過。來自數據集的最小obs覆蓋所有需要的級別
我想將一個非常大的數據集減少到較少的觀測值,但包含原始數據集的所有級別(最多)一次。這是爲了測試目的而完成的,因此我們最有興趣提出最少數量的obs的最終數據集。
所以,如果我們以數據集SASHELP.CLASS爲例。我想找出第一個obs(或者任何非特定的obs,但我認爲它可能比第一個/最後一個obs更容易),它涵蓋原始數據集的各個級別,而不是 all possible(existing ,或理論)所需變量的組合。
輸出會是這個樣子:(SASHELP.CLASS:各級按年齡,性別):
- 時代都有6個不同等級(11-16)
- SEX有2個不同的層次(」 F」, 「M」)
- OBS覆蓋這些級別的數量最少理論上是6
所以我們應該結束了:
- OBS#1:Affred, 「M」,14
- OBS#2:翹, 「F」,13
巴巴拉,Carol和亨利不會被輸出,如FM和13-14被覆蓋
- OBS#3:詹姆斯, 「M」,12
- OBS#4:珍, 「F」,15
- OBS#5:喬伊斯, 「F」, 11
- OBS#6:觀測的菲利普, 「M」,輸出
在這種情況下,我們通過數據順序地去的16
端,並且我們發現最小數目(6)滿足這個要求,但是如果這些等級變得更加冗長(或者相互關聯),並且數據被分類了(假設我們可以預先分類),那麼我們最終可能會得到接近最小值的東西,但並不是所需最長等級中的最小值變量。
我會想象這需要某種遞歸算法來最有效地獲得小數目的obs來覆蓋這些值,但不知道從哪裏開始。任何幫助將不勝感激!
您是否需要從行中的類變量(此處爲年齡和性別)之外的其他數據?如果是這樣,它有多少 - 另一個變量或兩個或多個,以及序數或離散? – Joe