我有一个1和0的矩阵。有关此表的规则如下。
我想计算一个1,1的系列出现的次数(其中1不是以0分隔!)并且为1,1,1的系列做同样的事情。我尝试过colSums,但它似乎不太合适。
矩阵最终是
occ <- matrix()
occ_temp <- matrix
for (j in 1:nrow(final)){
for (i in 2:7){
if (sum(final[j,i-1:i])==2){occ_temp[j,i-1]=1}
}
occ[j] <- sum(occ_temp)
}
因此,对于第一排,我希望有1次1,1,1和0次的系列赛1,1,1。对于第4排,我希望0次能够获得1,1次,但是1次能够获得1,1,1次。
任何人都可以告诉我,对于1,1的系列,以下代码有什么问题吗?
function nextQuestion(){
var curr = $(".question:visible");
var next = curr.next(".question");
next.show();
curr.hide();
if (!next.next(".question").length) {
$("button").attr('disabled', 'disabled');
$("button").text("End of Test");
}
}
$('#2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25 ').hide();
$('#next').click(nextQuestion);
$('a.mcqtest').click(nextQuestion);
答案 0 :(得分:1)
我们可以使用apply
遍历行,使用rle
获取游程长度类型,提取lengths
为values
的{{1}},检查是否为sum
等于'n1'和'n2',得到n1 <- 2
n2 <- 3
res <- t(apply(m1, 1, FUN=function(x) {
x1 <- with(rle(x), lengths[!!values])
c(sum(x1==n1), sum(x1==n2))
}))
colnames(res) <- paste0("count", c(11, 111))
res
# count11 count111
# [1,] 1 0
# [2,] 1 0
# [3,] 1 0
# [4,] 0 1
# [5,] 1 0
# [6,] 1 0
# [7,] 0 0
# [8,] 1 0
# [9,] 2 0
#[10,] 1 0
#[11,] 1 0
#[12,] 1 0
#[13,] 0 0
#[14,] 0 0
#[15,] 0 0
。
test