我有以下矩阵
mdat <- matrix(c(6,2,4,4,'*',5,1,6,'*',2,1,5,1,3,3,5,4,'*',5,'*',1,'*',4,'*',2,2,4,3,4,4,4,'*',4,3,3,1,1,3,2,3,3,3,3,3,2,2,'*','*',2,1,2,2,2,2,2,1,1,1,1,1,'*',1,1,1,1,1 ),nrow = 6, ncol = 11, byrow = TRUE)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] "6" "2" "4" "4" "*" "5" "1" "6" "*" "2" "1"
[2,] "5" "1" "3" "3" "5" "4" "*" "5" "*" "1" "*"
[3,] "4" "*" "2" "2" "4" "3" "4" "4" "4" "*" "4"
[4,] "3" "3" "1" "1" "3" "2" "3" "3" "3" "3" "3"
[5,] "2" "2" "*" "*" "2" "1" "2" "2" "2" "2" "2"
[6,] "1" "1" "1" "1" "1" "*" "1" "1" "1" "1" "1"
我试图为每行找到 5 个连续数字 >= 3 并将初始数字和最终数字的位置写入 txt 文件,在示例中,第 3 行和第 4 行分别有从第 5 列和第 7 列开始的 5 个数字,应该:
initial = [3,5] final [3,9]
initial = [4,7] final [4,11]
以下解决方案几乎可以工作,但错过了第一个识别行(第 3 行)的 ini 和最终值
element<-0
ini<-1
final<-1
consecutives<-0
zz<-file("C:/consecutives.txt","w")
for (i in 1:6){
for (j in 1:11) {
if (b[i,j] != "*"){
element<-as.integer(b[i,j])
if (element>=3)
{ini<-j
consecutives<-consecutives+1
row<-i
if (consecutives>=5){
final<-j
writeLines(paste("element",toString(element), "Row", toString(row), "ini", toString(ini),"final",toString(final)) ,con=zz,sep = "\n")
}
}
}
else consecutives<-0
}
}
close(zz)