我有一张桌子,我经常用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)) )
我想添加前几个边缘表的总和,然后是底部剩余表的总和,然后是总计。我可以想象,在得到的ftable中我会想要As,Bs,Cs,然后是那三个的总和,然后是Ds,Es和这两个的总和,然后是所有表的总和,如:< / p>
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
像往常一样,我认为解决方案比问题多得多。谢谢 赛斯拉蒂默
答案 0 :(得分:1)
你可以这样做:
isABC<-ifelse(A %in% c("A", "B", "C"), "ABC", "CD")
( tab=table(isABC,A,b,numbers) )
( tab1=ftable(addmargins(tab)) )
现在你有一个更大的表,它可以容纳比你想要的更多的行,但那些应该很容易丢弃......