我插入了一个for循环:
for(j in 2:1036) {
nMatchingLoci = 0
for(i in 1:1) {
if(sampGeno[1,i]==FGMMdata[1,i,j] && sampGeno[2,i]==FGMMdata[2,i,j]) {
nMatchingLoci = nMatchingLoci + 1
}
}
if(nMatchingLoci==1) {
print(paste("!!! 1 locus match with entry number", j))
}
}
我的输出只是配置文件列表。如何添加其中的几个?
该列表在我的控制台中如下所示:
[1] "!!! 1 locus match with entry number 4"
[1] "!!! 1 locus match with entry number 7"
[1] "!!! 1 locus match with entry number 24"
[1] "!!! 1 locus match with entry number 44"
[1] "!!! 1 locus match with entry number 51"
[1] "!!! 1 locus match with entry number 53"
[1] "!!! 1 locus match with entry number 58"
[1] "!!! 1 locus match with entry number 63"
[1] "!!! 1 locus match with entry number 72"
以此类推...
答案 0 :(得分:0)
在for循环之前,创建一个值为0(x = 0)的变量。然后在第二个if语句中添加
x = x + 1
然后在运行for循环后仅打印x的值。那是你的数目。
答案 1 :(得分:0)
我建议使用向量或列表来存储“位置匹配”的索引,然后在循环完成后即可对条目进行计数。
我个人会使用一个列表,因为它的用途更广泛(但使用起来有些挑剔)
## Preallocate list
matchList <- vector("list",1036)
for(j in 2:1036) {
for(i in 1:1) {
if(sampGeno[1,i]==FGMMdata[1,i,j] && sampGeno[2,i]==FGMMdata[2,i,j]) {
matchList[[j]] <- c(matchList[[j]],i)
}
}
}
## indexes i where match was found for j=73
matchList[[73]]
## Number of matches for each j index
lengths(matchList)
## Total number of matches
sum(lengths(matchList))
正如我在评论中说的那样,我正在假设i上的for循环位于1:1以外的序列上。