2017-09-11 5 views
0

私はカテゴリ変数を持ち、各応答にその頻度を乗算する新しい変数を計算しようとしています。例:Stataで変数を生成していますか?

 total |  Freq.  
------------+--------------- 
      1 |   6   
      2 |   12   
      3 |   9   
      5 |   5   
      6 |   10   

I和を提示nはそれぞれ応答(すなわち、= 6 1 = 24 2 = 27 3、など)のための変数を持っていると思います。私はegenを使用していくつかの計算を試みましたが、動作していないようでした。もし誰かが洞察力を持っているなら教えてください。私は、この例では、あなたの一般的な戦術示さなければならないということだと思う

+1

常にコードの試行を表示します。 –

答えて

2

:この例でのRep78で

sysuse auto, clear 

bysort rep78: egen count_rep78 = count(rep78) 
gen freq_x_val = rep78*count_rep78 

browse rep78 count_rep78 freq_x_val 

はカテゴリ変数です。

基本的には、bysortステップのカテゴリの頻度であるカウント変数を作成します。次に、新しいカウント変数にカテゴリ変数を乗算すると、完了です。

2

元のデータセットにデータを保存するか、新しいデータセットを保存するかは不明です。このコードは、両方を行います。

clear 

input catvar n 
      1   6   
      2   12   
      3   9   
      5   5   
      6   10 
end 

/* create fake catvar data */ 
expand n 
drop n 

/* store desired data in a variable in your data */ 
bysort catvar: gen sum = _N 
replace sum = sum*catvar 
list in 1/6, clean noobs 
table catvar, c(mean sum freq) 

/* or get a new dataset with desired data */ 
contract catvar sum, freq(n) 
list, clean noobs 
関連する問題