2016-04-11 15 views
1

Stata'yı her kişi (Amanda, Christian, Paola) tarafından tüketilen minimum ice_cream minimum değerini seçmeye çalışıyorum, böylece sadece 3 sıra ile sonuçlanacağım.Stata: Her bir gözlemin en azını seçin

person ice_cream 
    Amanda 16 
    Amanda 27 
    Amanda 29 
    Amanda 40 
    Amanda 96 
    Amanda 97 
    Christian 19 
    Christian 23 
    Christian 26 
    Christian 27 
    Christian 28 
    Christian 34 
    Christian 62 
    Christian 70 
    Christian 78 
    Paola 5 
    Paola 11 
    Paola 28 
    Paola 97 
+0

O yardımsever açık İstediğiniz, ama kesinlikle, Stata için olduğu gibi gözlemlerin en az bir blok, tek bir satır veya veri kümesindeki kayıt olduğunu. –

cevap

3

yeni bir değişken oluşturarak önler Bir cevap:

sort person ice_cream 
by person: keep if _n == 1 
+0

'kişiye göre: _n == 1 'temelde" her bireyin ilk gözlemini sürdür "anlamına mı gelir? – pdx

+1

Evet, ancak @lmo önce sıralanır, böylece en azını istediğiniz gibi seçer. –

+2

@pdesp '_n' yöntemi çok kullanışlıdır ve birçok veri temizleme/manipülasyon senaryosunda uygulanabilir. – lmo

2

Bu çalışması gerekir:

* Generate a variable with the group minimums  
sort person 
by person: egen Min = min(ice_cream) 
* Only keep observations with same value as group minimums 
keep if Min == ice_cream 
* Delete minimum variable 
drop Min 

Not: Bu ice_cream için asgari değer ile sadece gözlemlerini bırakacaktır. Bir gruptaki çoklu gözlemler, ice_cream için minimum değere sahipse, o grup için birden fazla gözleminiz olacaktır (Bu, yukarıdaki verilerde değil, ancak örneğin ice_cream'in bir faktör değişkeni olması durumunda olabilir). Eğer grup başına tek gözlem isteseydi o zaman ekleyebilirsiniz:

duplicates drop person, force 
+0

Bu, minimum için bağlar varsa, gereksinimi karşılayamıyor. Bu durumda, gerekenden daha fazla gözlem seçersiniz. –

+0

@NickCox, haklısınız. Bir not ekledim. – Stuart

+2

En düşük değere sahip bağlar, sayımlarla ve ölçülen değişkenlerle bile çok yaygındır. –

3

tek satırlık bir çözüm

collapse (min) ice_cream, by(person)