さまざまな食品への支出を含む世帯データセットがあります。それらを主な食品群に分類し、価格は支出額を量で割ったものです。一部の世帯では、対応する食品グループに関する消費量がゼロであるため、価格がゼロになります。そのような場合、その非消費世帯が選択された市区町村の平均価格として価格を取得したいと考えています。
STATAを使用してどのように行うことができますか?
さまざまな食品への支出を含む世帯データセットがあります。それらを主な食品群に分類し、価格は支出額を量で割ったものです。一部の世帯では、対応する食品グループに関する消費量がゼロであるため、価格がゼロになります。そのような場合、その非消費世帯が選択された市区町村の平均価格として価格を取得したいと考えています。
STATAを使用してどのように行うことができますか?
正の値の平均は
egen mean_price = mean(price / (price > 0)), by(province district city)
そして、クローンのゼロを次のように置き換えることができます
gen price2 = cond(price > 0, price, mean_price)
除算のトリックは、このように説明できます。price > 0
が真の場合、その式は 1 に評価されます。false の場合は 0 です。1 で除算すると、明らかに値が変更されません。0 で除算すると欠落が生じますが、egen
のmean()
関数はこれを無視します。これは、まさに求められていることです。
http://www.stata-journal.com/article.html?article=dm0055で参照されている記事には、関連する手法の詳細な説明があります。
PS Stata が正しいスペルです。これは造語であり、決して頭字語ではありません。
PSあなたはまだ答えを認めていません2つの変数の差を得る方法, 欠損値がある場合?
後で:
この場合、別の方法は
egen total = total(price), by(province district city)
egen number = total(price > 0), by(province district city)
gen price2 = cond(price > 0, price, total/number)
ゼロ価格は合計に違いがないからです。全体で s を使用double
します。