簡體   English   中英

在Stata中使用循環生成變量總和

[英]Generating sums of variables with loops in Stata

我在嘗試執行的循環以及在生成所需變量的語法方面遇到一些問題。

簡而言之,我要做的是將一組特定觀察值的總和,並將每個總和存儲在一個單元格中,用於一個新變量。 這是我使用的語法示例:

forvalues j=1/50 { replace x1 = sum(houses) if village== j' & year==2010 } forvalues j=1/50 { replace x1 = sum(houses) if village== & year==2010 }

gen x2=. forvalues j=1/50 { replace x2 = sum(houses) if village== gen x2=. forvalues j=1/50 { replace x2 = sum(houses) if village== j' & year==2011 } gen x2=. forvalues j=1/50 { replace x2 = sum(houses) if village== & year==2011 }

gen x3 =. forvalues j=1/50 { replace x3 = sum(houses) if village== gen x3 =. forvalues j=1/50 { replace x3 = sum(houses) if village== j' & year==2012 } gen x3 =. forvalues j=1/50 { replace x3 = sum(houses) if village== & year==2012 }

這來自具有4000多個觀測值的數據集。 因此,對於每個特定的j,如果我成功使用了上面的代碼,我將獲得每個j的唯一觀測值(我想要獲取的值),但我沒有得到-這是所有房屋的總和,以年份和村庄為條件; 每年每個村庄的房屋總數。 如果有人可以幫助我為每個變量中的每個j獲得一個特定的觀察值,我將不勝感激。

sum()將返回運行總和,因此可能不是您想要的。 使用by:前綴結合egen命令通常可以更輕松地解決此類問題。 下面的一行命令將為您提供每個村庄和每年的房屋總數:

bys village year: egen Nhouses = total(houses)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM