У меня проблемы с написанием простого цикла for с условиями в r.У меня есть этот массив:
Temp <- c("A", "A", "B", "A", "C", "C", "A", "B")
Я хочу подсчитать пары в этом массиве, используя два индекса, которые увеличиваются во время цикла. Обязательно следовать порядку последовательности.
Окончательный результат для этого массива должен быть:
CountAA = 1
CountAB = 2
CountAC = 1
CountBA = 1
CountBB = 0
CountBC = 0
CountCA = 1
CountCB = 0
CountCC = 1
Я пытался с этим кодом, но он дает мне ошибку
"Error in if (Temp[i] == "A" & Temp[j] == "A") { :
argument is of length zero"
Код
CountAA = 0
CountAB = 0
CountAC = 0
CountBA = 0
CountBB = 0
CountBC = 0
CountCA = 0
CountCB = 0
CountCC = 0
i = 1
j = 2
for (j in 1:length(Temp)-1){
if (Temp[i]=="A" & Temp[j]=="A"){
CountAA = CountAA + 1
i = i + 1
j = j + 1
}
if (Temp[i]=="A" & Temp[j]=="B"){
CountAB = CountAB + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="A" & Temp[j]=="C"){
CountAC = CountAC + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="B" & Temp[j]=="A"){
CountBA = CountBA + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="B" & Temp[j]=="B"){
CountBB = CountBB + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="B" & Temp[j]=="C"){
CountBC = CountBC + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="C" & Temp[j]=="A"){
CountCA = CountCA + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="C" & Temp[j]=="B"){
CountCB = CountCB + 1
i = i + 1
j = j + 1
}
if(Temp[i]=="C" & Temp[j]=="C"){
CountCC = CountCC + 1
i = i + 1
j = j + 1
}
}