我有一个像这样的矩阵:
m <- matrix(c(1,2,1,1,3,1,1,0,0,0,1,1,0,1), ncol = 2,
dimnames = list(NULL, c('var', 'tp')))
var tp
[1,] 1 0
[2,] 2 0
[3,] 1 0
[4,] 1 1
[5,] 3 1
[6,] 1 0
[7,] 1 1
etc.
我想总结var
的所有行,直到tp
变为1,然后打印结果并停止。在这个例子中,这意味着总结前四行。
我如何在R中这样做?
答案 0 :(得分:0)
您可以使用cumsum函数来识别tp在哪一行变为1,然后找到与之对应的行,并将此变量加到此点
sum(X[1:min(which(cumsum(m[,2])==1)),1])
答案 1 :(得分:0)
另一种选择:
var