0

重複の可能性:
3次元テーブルのprop.table()を作成するにはどうすればよいですか?

私はRを初めて使用します。私はスリーウェイテーブルに取り組んでおり、助けが必要です。これが次のテーブルの説明dputです:

mytable <- structure(c(42L, 151L, 313L, 69L, 22L, 46L, 47L, 24L, 17L, 36L, 108L, 16L), .Dim = c(2L, 2L, 3L), .Dimnames = list(c("0", "1" ), c("female", "male"), c("adult", "child", "unknown")), class = "table") 

属性名を使用して、このテーブルの要素にアクセスしたいと思います。例: mytable["0"]["female"]["adult"]これを行うことは可能ですか?

また、比率を計算しようとしています。これが私のテーブルです。

, , adult

      female male
    0     42  313
    1    151   69

    , , child

      female male
    0     22   47
    1     46   24

    , , unknown

      female male
    0     17  108
    1     36   16

年齢層-性別-0|1の比率を計算したいと思います。私が実行するときprop.table(mytable)、それは細胞の比率を計算していますが、それは3つの年齢層すべてを考慮しています。

, , adult

          female       male
    0 0.04713805 0.35129068
    1 0.16947250 0.07744108

    , , child

          female       male
    0 0.02469136 0.05274972
    1 0.05162738 0.02693603

    , , unknown

          female       male
    0 0.01907969 0.12121212
    1 0.04040404 0.01795735

年齢層や性別ごとのプロポーションが欲しいです。例:すべての成人のうち、1人の女性は78%です。これをどのように行うのですか?

4

2 に答える 2

1

より簡単な方法は、テーブルをdata.frameにすることです。

df <- as.data.frame(mytable)

次に、必要に応じてゼロの値を取得します。

df[df$Var1 == 0,]

次に、プロポーションについて次のことができます。

df <- transform(df,total = ave(Freq, Var3, FUN = sum))
# get totals within adult/child/unkown

df <- transform(df,props = Freq/total)
# make proportions



#    > df
#   Var1   Var2    Var3 Freq total      props
#1     0 female   adult   42   575 0.07304348
#2     1 female   adult  151   575 0.26260870
#3     0   male   adult  313   575 0.54434783
#4     1   male   adult   69   575 0.12000000
#5     0 female   child   22   139 0.15827338
#6     1 female   child   46   139 0.33093525
#7     0   male   child   47   139 0.33812950
#8     1   male   child   24   139 0.17266187
#9     0 female unknown   17   177 0.09604520
#10    1 female unknown   36   177 0.20338983
#11    0   male unknown  108   177 0.61016949
#12    1   male unknown   16   177 0.09039548
于 2013-02-02T23:44:48.587 に答える
1

これはあなたが追いかけているものですか?

データ:

test <- structure(c(42L, 151L, 313L, 69L, 22L, 46L, 47L, 24L, 17L, 36L, 108L, 16L), .Dim = c(2L, 2L, 3L), .Dimnames = list(c("0", "1" ), c("female", "male"), c("adult", "child", "unknown")), class = "table") 

2各サブテーブル()内の列のパーセンテージ()を取得します3

prop.table(test,c(2,3))

結果:

, , adult

     female      male
0 0.2176166 0.8193717
1 0.7823834 0.1806283

, , child

     female      male
0 0.3235294 0.6619718
1 0.6764706 0.3380282

, , unknown

     female      male
0 0.3207547 0.8709677
1 0.6792453 0.1290323
于 2013-02-03T01:05:02.293 に答える