次のようなデータがあります。
country_name --------都市----------- area_change_pc
バングラデシュ------------ ボグラ--------(33.33)
バングラデシュ-- ----------チャンドプール-- (-41.76)
インド---------------------デワス-------(12.95)
パキスタン----------------クエッタ-------(4.08)
パキスタン----------------Vehari---- ----(206.01)
...
次に、コードを使用して、負 (<0)、小 (>=0、<15)、中 (>=15、<50)、および大 (>= 50) の 4 つの偶発事象に基づいて、growth という新しい変数を作成しました。
urbanization$growth[urbanization$area_change_pc<0]<-"1. negative"
urbanization$growth[urbanization$area_change_pc>=0 & area_change_pc<15]<-"2. small"
urbanization$growth[area_change_pc>=15 & area_change_pc<50]<-"3. medium"
urbanization$growth[area_change_pc>=50]<-"4. large"
データは次のようになります。
country_name -------- City ----------- area_change_pc ---- growth
バングラデシュ------------ボグラ--------( 33.33)--------------------3. 中
バングラデシュ------------チャンドプール-- (-41.76)-------------------1. 負
のインド---------------------デワ-------(12.95)---------------- ----2. 遅い
パキスタン----------------クエッタ-------(4.08)--------------------- -2. 遅い
パキスタン----------------Vehari--------(206.01)------------------4. 大
...
次のようなテーブルを作成しようとしています。
Bangladesh India Pakistan Total
negative
small
medium
large
Area_Change
ここで、各セルはそれらの偶発事象の平均によって埋められます。たとえば、最初のセルは、Area_Change
マイナス成長のバングラデシュのすべての都市の平均である必要があります。Total
すべての国における成長グループのみの平均になりたいと思います。area_change_pc
tapply を使用して、各国の平均を取得する方法を見つけました。
with(urbanization, tapply(area_change_pc, list(growth,country_name), mean))
私に与えます(データ値が入力されています-完全なデータセットを使用しているため、指定した数値と一致しないため、それらを省略しました):
----------------Bangladesh India Pakistan
negative
small
medium
large
ただし、合計列を作成する方法がわかりません。最終的には、その成長グループの平均に対して、各国と成長グループの間の有意差をテストできるように、合計列が必要です (つまり、バングラデシュのマイナス成長地域の面積の平均変化は、平均変化と大きく異なるのですか?すべての国の地域で?)。私がこれを達成する方法を知っている人はいますか?