首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理高维表

处理高维表
EN

Stack Overflow用户
提问于 2011-05-04 02:01:16
回答 1查看 261关注 0票数 1

我有一个表,我经常用R来计算,它有三个维度。我想在(这里是5个)边际表中添加一些表。我通常是这样做的:

代码语言:javascript
复制
    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)) )

我想添加前几个边缘表的总和,然后是底部剩余表的总和,然后是总计。我可以想象,在得到的ftable中,我想要的是A,B,C,然后是这三个表的和,然后是D,Es,以及这两个表的和,然后是所有表的和,例如:

代码语言:javascript
复制
         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

像往常一样,我认为解决方案可能比问题少得多。谢谢Seth Latimer

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-04 04:07:34

你可以这样做:

代码语言:javascript
复制
isABC<-ifelse(A %in% c("A", "B", "C"), "ABC", "CD")
( tab=table(isABC,A,b,numbers) )
( tab1=ftable(addmargins(tab)) )

现在你有了一个更大的表,它容纳的行比你想要的还要多,但是这些行应该很容易删除……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5873691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档