2012-11-07 75 views
1

我想列舉一些條件數的記錄。問題:如果我在1/4或_n中使用< = 4,並且前4條記錄不符合條件,則不列出任何記錄。這裏是一個例子:Stata:只列出幾條條件的記錄

clear 
input x 
1 
2 
3 
4 
5 
6 
end 
list if x > 4 & _n <= 3 
list in 1/3 if x > 4 

有沒有人有一個想法如何才能解決這個問題在一行? 感謝您的幫助。

+0

Nick Cox對此問題感興趣,並在Statalist上發佈了另一個解決方案:http://www.stata.com/statalist/archive/2012-11/msg00445.html –

回答

1

將下面的代碼放到一個名爲slist.ado的文件中Stata可以看到它的目錄(如〜/ ado/personal)。你可以用-adopath-命令找到這樣的目錄。

program define slist 
version 12.1 
syntax [varlist] [if], top(int) 

#delimit; 
tempvar tag; 
gen `tag'=1 `if'; 
sort `tag'; 
list `varlist' `if' in 1/`top'; 

end; 

語法是slist x if x>4, top(4)。如果你不指定x,它會給你數據集中的所有變量。

+0

非常感謝。我有點驚訝,我們必須爲自己編程這麼重要的功能。 – giordano

+0

我必須說,在我作爲Stata用戶的12年中,我從來都不想做這樣的事情。 –