0

私の質問は、ここにあるものの拡張です: Construct new variable from given 5 categorical variables in Stata

私は R ユーザーであり、Stata 構文に順応するのに苦労しています。また、R のドキュメントや例をオンラインで Google で検索できることに慣れていて、Stata のリソースがあまり見つからなかったので、ここに来ました。

行が個々の人を表し、列がこれらの人々のさまざまな属性を記録するデータセットがあります。0 または 1 (「いいえ」または「はい」) のバイナリ応答データを持つ 5 つのカテゴリ変数 (白人、ヒスパニック、黒人、アジア人、その他) があります。spinplots パッケージを使用して、人種と応答データのモザイク プロットを作成したいと考えています。ただし、最初に 5 つのカテゴリ変数すべてを、ラベルを維持する 5 つのレベルを持つカテゴリ変数に結合する必要があると思います (したがって、各民族の応答率を確認できます)。それを機能させることができませんでした。どんな助けでも大歓迎です。

編集:データがどのように見えるか、どのように見せたいかの描写を追加しました。

私のデータは今:

person_id,black,asian,white,hispanic,responded

1,0,0,1,0,0

2,1,0,0,0,0

3,1,0,0,0,1

4,0,1,0,0,1

5,0,1,0,0,1

6,0,1,0,0,0

7,0,0,1,0,1

8,0,0,0,1,1

私が望むのは、tabulate コマンドを使用してテーブルを作成し、次のようにすることです。

respond, black, asian, white, hispanic
responded to survey |    20, 30, 25, 10, 15

did not respond     |    15, 20, 21, 23, 33
4

1 に答える 1

0

複数の {0,1} ダミーではなく、単一の指標変数が必要なようです。最も簡単な方法は、おそらくループを使用することです。もう 1 つのオプションは、 を使用cond()して新しい指標変数を生成し (すべての人種ダミーが「その他」のグループに属する回答者を見つけたい場合があることに注意してください0)、その値 (および の値) にラベルを付けてからresponded、頻度を作成することです。テーブル:

clear
input person_id black asian white hispanic responded
1 0 0 1 0 0
2 1 0 0 0 0
3 1 0 0 0 1
4 0 1 0 0 1
5 0 1 0 0 1
6 0 1 0 0 0
7 0 0 1 0 1
8 0 0 0 1 1
9 0 0 0 0 1
end

gen race = "other"
foreach v of varlist black asian white hispanic {
    replace race = "`v'" if `v' == 1
}

label define race2 1 "asian" 2 "black" 3 "hispanic" 4 "white" 99 "other"
gen race2:race2 = cond(black == 1, 1, ///
                cond(asian == 1, 2, ///
                cond(white == 1, 3, ///
                cond(hispanic == 1, 4, 99))))

label define responded 0 "did not respond" 1 "responded to survey"
label values responded responded
tab responded race

結果とともに

                    |                          race
          responded |     asian      black   hispanic      other      white |     Total
--------------------+-------------------------------------------------------+----------
    did not respond |         1          1          0          0          1 |         3 
responded to survey |         2          1          1          1          1 |         6 
--------------------+-------------------------------------------------------+----------
              Total |         3          2          1          1          2 |         9 

tab responded race2race2異なる順序 (値ラベルのアルファベット順ではなく実際の値) で同じ結果が得られます。

于 2015-09-14T12:34:06.153 に答える