簡體   English   中英

Stata:使用 foreach 生成變量

[英]Stata: Generate Variable with foreach

我想通過創建一個等於 A1、..、A5 的新變量 A 來聚合我的變量 A1、..、A5,只要相應的 r`k' 等於 1。我想要聚合的變量太多像這種方式,我想知道也許有一種方法可以比我下面的代碼更緊湊地編寫它。 (我猜這里可以使用 foreach 但我不確定如何使用)

gen A=.
gen B=.
forvalues k=1/5 {
replace A=A`k' if r`k'==1
replace B=B`k' if r`k'==1
}

這將一個循環映射為兩個:

foreach v in A B 
    gen `v' = . 
    forvalues k=1/5 {
        replace `v' = `v'`k' if r`k'==1
    }
} 

但是也許您的數據結構需要重新訪問,這樣您就可以更簡單地獲得其他東西,而不是循環兩次。 因此,如果有意義的話,將AB堆疊到一個變量中將刪除一個循環。

暫無
暫無

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

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