Почему доли записей в моей таблице разделены на четыре в моей таблице непредвиденных обстоятельств?

это моя таблица непредвиденных обстоятельств cxTable:

                Always Wrong Almst Always Wrg Sometimes Wrong Not Wrong At All
  Lower Class           1344              166             146               73
  Working Class        11997             1775            1105              355
  Middle Class         11221             2320            1188              341
  Upper Class            696              177             125               47 

Добавление полей работает хорошо:

> marginCxTable = addmargins(cxTable)
> marginCxTable

                Always Wrong Almst Always Wrg Sometimes Wrong Not Wrong At All   Sum
  Lower Class           1344              166             146               73  1729
  Working Class        11997             1775            1105              355 15232
  Middle Class         11221             2320            1188              341 15070
  Upper Class            696              177             125               47  1045
  Sum                  25258             4438            2564              816 33076

Однако, добавляя дроби, моя сумма составляет всего 25% вместо 100%. Все остальные записи также делятся на четыре.

> prop.table(marginCxTable)

                Always Wrong Almst Always Wrg Sometimes Wrong Not Wrong At All          Sum
  Lower Class   0.0101584230     0.0012546862    0.0011035192     0.0005517596 0.0130683880
  Working Class 0.0906775305     0.0134160721    0.0083519773     0.0026832144 0.1151287943
  Middle Class  0.0848122506     0.0175353731    0.0089793204     0.0025773975 0.1139043415
  Upper Class   0.0052606119     0.0013378280    0.0009447938     0.0003552425 0.0078984762
  Sum           0.1909088161     0.0335439594    0.0193796106     0.0061676140 0.2500000000

Я, наверное, упускаю что-то очень простое. Спасибо за помощь.


person Amir Rahbaran    schedule 09.10.2015    source источник
comment
Может быть, вы хотели сначала сделать prop.table(), а потом addmargins()?   -  person joran    schedule 09.10.2015


Ответы (1)


Согласно комментарию @joran, вы хотите сделать prop.table() до addmargins(). Использование данных mtcars для иллюстрации, чтобы другие могли воспроизвести вывод:

mt <- table(mtcars$cyl, mtcars$am)
addmargins(prop.table(mt))
#           0       1     Sum
# 4   0.09375 0.25000 0.34375
# 6   0.12500 0.09375 0.21875
# 8   0.37500 0.06250 0.43750
# Sum 0.59375 0.40625 1.00000
person JasonAizkalns    schedule 09.10.2015
comment
спасибо тебе и @joran. работает отлично. еще из любопытства, почему все мои записи разделены на четыре? - person Amir Rahbaran; 09.10.2015
comment
@AmirRahbaran Их не делят на четыре. Скорее, они делятся на всю сумму таблицы. Суммируйте записи marginCxTable (всего = 132 304). Разделите каждую запись на 132 304, и вы получите неожиданный результат. Это то, что prop.table делает с любой существующей таблицей. - person JasonAizkalns; 09.10.2015
comment
ОМГ, это мне очень помогло. Большое спасибо. - person Amir Rahbaran; 10.10.2015