У меня есть набор данных с 5 столбцами и количеством чтений.Это выглядит так:

Теперь из этого набора данных я хочу взять 12 точек за раз и рассчитать евклидово расстояние от каждого из них.12 точек в этом наборе данных для другого набора значений, уже рассчитанных и сохраненных.Делая это, я хочу видеть на основе сравнения, в какой кластер он попадает. Код, который я использую для этого, следующий:
DataNew <- read.csv("TeD.csv", header = TRUE, sep = ",")
a = 1
b = 12
DataNew$CCD <- (max(DataNew$CCD) - DataNew$CCD)/(max(DataNew$CCD) -
min(DataNew$CCD))
DataNew$CCR <- (max(DataNew$CCR) - DataNew$CCR)/(max(DataNew$CCR) -
min(DataNew$CCR))
DataNew$CCA <- (max(DataNew$CCA) - DataNew$CCA)/(max(DataNew$CCA) -
min(DataNew$CCA))
DataNew$CCN <- (max(DataNew$CCN) - DataNew$CCN)/(max(DataNew$CCN) -
min(DataNew$CCN))
write.table(DataNew, file = "DataNew.csv", sep = ",", col.names = F, append
= T)
for (i in DataNew$Serial) {
DatNew = DataNew[a:b,4:6]
for (j in 1:12) {
EuclDistMean1 = sqrt((DatNew$CCD[j] - CentMean[1][1])^2 + (
DatNew$CCR[j] - CentMean[1][2])^2 + (DatNew$CCA[j] - CentMean[1][3])^3)
write.table(EuclDistMean1, file = "Euclidian Distance 1.csv", sep =
",", col.names = F, append = T)
EuclDistMean2 = sqrt((DatNew$CCD[j] - CentMean[2][1])^2 +
(DatNew$CCR[j] - CentMean[2][2])^2 + (DatNew$CCA[j] - CentMean[2]
[3])^3)
write.table(CentEntropy, file = "Euclidian Distance 2.csv", sep = ",",
col.names = F, append = T)
}
if(EuclDistMean1 < EuclDistMean2)
{
print("Cluster 1")
}
else if(EuclDistMean2 < EuclDistMean1)
{
print("Cluster 2")
}
a = a + 12
b = b + 13
}
Однако, когда я выполняю этот код, я получаю N /А значения и программа ломаются после итерации в течение первых 12 раз.Если кто-то может предложить какое-либо обновление или исправление в коде, то я буду очень признателен.Спасибо!