我是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表
我该怎么做?
答案 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]
目前不在我的电脑上,因此代码中可能存在拼写错误。