R总结特定的行和列

时间:2014-01-13 23:38:58

标签: r sum

我是R的新手,遇到了rowSums和colSums的问题

我的数据集(称为“表格”)看起来像这样

     0 0.2 0.25 0.4 0.6 0.75 0.8  1
  0 92  34    1  19  23    0  16 17
  1  7  18    0  27  33    0  16 16
  2 12   8    0   7  16    0  14 25
  3  2   9    0   5   8    1   9 11
  4  0   1    0   3   3    1   1  7
  5  2   0    0   0   2    0   0  1
  6  0   0    0   1   0    0   0  5
  7  0   1    0   0   0    0   0  1

我要做的是简化表格,使其最终看起来像

    0   >0
 0

>0

与clump一样,所有值为[0,0] [0,大于0] [大于0,0] [大于0,大于0]的值导致2x2表

我该怎么做?

2 个答案:

答案 0 :(得分:3)

x <- as.matrix(read.table(text=
 "92  34    1  19  23    0  16 17
  7  18    0  27  33    0  16 16
  12   8    0   7  16    0  14 25
   2   9    0   5   8    1   9 11
   0   1    0   3   3    1   1  7
   2   0    0   0   2    0   0  1
   0   0    0   1   0    0   0  5
   0   1    0   0   0    0   0  1",
 header=FALSE))
dimnames(x) <- list(0:7,
c(0,0.2,0.25,0.4,0.6,0.75,0.8,1))
res <- matrix(c(x[1,1],sum(x[-1,1]),
         sum(x[1,-1]),
         sum(x[-1,-1])),
       nrow=2,
       dimnames=list(c("0",">0"),
       c("0",">0")))
## double-check:
all.equal(sum(x),sum(res))

答案 1 :(得分:1)

您可能需要先查看基本的R矩阵寻址:http://www.r-tutor.com/r-introduction/matrix

您的紧凑矩阵包含如下:

reducedTable = matrix(ncol=2,nrow=2)
reducedTable[1,1] = Table[1,1]
reducedTable[1,2] = sum(Table[1,c(2:8)])
reducedTable[2,1] = sum(Table[c(2:8),1])
reducedTable[2,2] = Table[8,8]

目前不在我的电脑上,因此代码中可能存在拼写错误。