2017-01-27 13 views
0

農業慣行のビデオ普及の質を向上させるための調査では、譲渡中にどの非譲渡慣行が議論されたかが変数の1つです。例えば、小麦の播種には、それに言及されている4つの非交渉可能な実践がある。複数回答の集計

どのプラクティスについて議論したかに応じて、4,3,2または1を返す変数を作成したいとします。

私は、最初の数値にすべての文字列の応答をコード化:

gen SWI_ST_NNG1=q205_1_1 
replace SWI_ST_NNG1="0" if SWI_ST_NNG1=="#NULL!" 
replace SWI_ST_NNG1="1" if SWI_ST_NNG1=="Luke warm water should be used for seed treatment" 

gen SWI_ST_NNG2=q205_1_2 
replace SWI_ST_NNG2="0" if SWI_ST_NNG2=="#NULL!" 
replace SWI_ST_NNG2="2" if SWI_ST_NNG2=="Mixture of seed, Jaggery and cow urine should kept for" 

gen SWI_ST_NNG3=q205_1_3 
replace SWI_ST_NNG3="0" if SWI_ST_NNG3=="#NULL!" 
replace SWI_ST_NNG3="3" if SWI_ST_NNG3=="Use of bavistin powder is must for seed treatment" 

gen SWI_ST_NNG4=q205_1_4 
replace SWI_ST_NNG4="0" if SWI_ST_NNG4=="#NULL!" 
replace SWI_ST_NNG4="4" if SWI_ST_NNG4=="Seeds should be kept 12 to 15 hours for germination" 
+0

エディタを開いてコードの書式設定方法を確認します。 –

+0

これは、(1)コードのブロックを強調表示します(2) '{}'アイコンをクリックしてフォーマットします。 –

答えて

0

あなたはMCVEを提供しなかったとして、私たちは、物事を明確にするためにサンドボックスを必要としています。シリーズのhttps://stackoverflow.com/help/mcve基本的に

、変数Jは値J(1〜4)または0のいずれかを持っている参照してください、と私はあなたが非ゼロにしたいと思います。

回数簡単に変数間のループで行われます(あなたは、コード1と別の1人から3と4?どのようになるので、私は、1〜4を返すことはそうでない場合は任意の理にかなっていることがわかりません)。

clear 
set obs 10 
set seed 2803 
forval j = 1/4 { 
    gen SWI_ST_NNG`j' = cond(runiform() < 0.5, `j', 0) 
} 

list, sep(0) 


    +-------------------------------------------+ 
    | SWI_ST~1 SWI_ST~2 SWI_ST~3 SWI_ST~4 | 
    |-------------------------------------------| 
    1. |  0   0   0   4 | 
    2. |  1   0   0   0 | 
    3. |  0   2   0   0 | 
    4. |  1   2   3   4 | 
    5. |  1   2   3   4 | 
    6. |  1   2   3   0 | 
    7. |  1   2   3   0 | 
    8. |  0   2   3   4 | 
    9. |  1   0   3   4 | 
10. |  1   2   3   0 | 
    +-------------------------------------------+ 

gen count = 0 

quietly forval j = 1/4 { 
    replace count = count + (SWI_ST_NNG`j' > 0) 
} 

list, sep(0) 

    +---------------------------------------------------+ 
    | SWI_ST~1 SWI_ST~2 SWI_ST~3 SWI_ST~4 count | 
    |---------------------------------------------------| 
    1. |  0   0   0   4  1 | 
    2. |  1   0   0   0  1 | 
    3. |  0   2   0   0  1 | 
    4. |  1   2   3   4  4 | 
    5. |  1   2   3   4  4 | 
    6. |  1   2   3   0  3 | 
    7. |  1   2   3   0  3 | 
    8. |  0   2   3   4  3 | 
    9. |  1   0   3   4  3 | 
10. |  1   2   3   0  3 | 
    +---------------------------------------------------+ 

詳細は、this discussionを参照してください。実際に

は、便利なショートカットがあります:

egen count2 = anycount(SWI*), values(1/4) 

が、ルーピング方法について学ぶことは、より複雑な問題をクラックするために非常に便利です。あなただけの1または0などの変数をコード化した場合、あなたが望む数だけで簡単にegenで得られた、行の合計であったであろうことを

は注意してください。そのような指標(ダミーの変数)は、ほとんどの統計およびデータ管理目的のためにはるかに優れたコーディングである。