обработка таблиц больших размеров - PullRequest
1 голос
/ 03 мая 2011

У меня есть таблица, которую я обычно вычисляю с помощью R, которая имеет три измерения.Я хотел бы добавить несколько таблиц в (здесь 5) маргинальные таблицы.Я обычно делаю следующее:

    A=sample(LETTERS[1:5],100, rep=T)

    b=sample(letters[1:2],100, rep=T)

    numbers=sample(1:3,100, rep=T)

   ( tab=table(A,b,numbers) )
   ( tab1=ftable(addmargins(tab)) )

Я хотел бы добавить сумму первых нескольких маргинальных таблиц, а затем сумму оставшихся таблиц внизу, а затем общий итог.Я могу представить, что в итоговой таблице я хотел бы получить As, Bs, Cs, затем сумму этих трех, затем Ds, Es и сумму этих двух, а затем сумму всех таблиц, например:

         numbers   1   2   3 Sum
    A   b                          
    A   a             1   5   0   6
        b             4   2   2   8
        Sum           5   7   2  14
    B   a             2   6   6  14
        b             5   4   5  14
        Sum           7  10  11  28
    C   a             3   2   5  10
        b             1   2   2   5
        Sum           4   4   7  15
  sumac a             6  13  11  30   #### how do i add these three lines
        b               ....
        sum             ....
    D   a             2   1   1   4
        b             4   5   3  12
        Sum           6   6   4  16
    E   a             5   3   4  12
        b             4   3   8  15
        Sum           9   6  12  27
  sumde a             7   4   5  20   #### and these
        b               ....
        sum               ....
  sumae a            13  17  16  46
        b            18  16  20  54
        Sum          31  33  36 100

Как обычно, я думаю, что решение - это гораздо меньше строк, чем вопрос.Спасибо Сет Латимер

1 Ответ

1 голос
/ 04 мая 2011

Вы могли бы сделать что-то вроде этого:

isABC<-ifelse(A %in% c("A", "B", "C"), "ABC", "CD")
( tab=table(isABC,A,b,numbers) )
( tab1=ftable(addmargins(tab)) )

Теперь у вас есть таблица большего размера, в которой содержится даже больше строк, чем вы хотите, но их легко отбросить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...