Вы говорите, что программа работает, но в это верится с трудом.
Почему одно 'z' на нижнем регистре.
Зачем вычитать одинаковые величины. Ясно, что получится 0.
Зачем считать одно и то же много раз.
Код:
if(well[i, "Имя"] != well[j, "Имя"] $
well[i, "Z"]-well[j, "z"] < 0.05 &
sqrt((well[i, "Z"]-well[i, "Z"])**2 +
(well[i, "Z"]-well[i, "Z"])^2 +
(well[i, "Z"]-well[i, "Z"])^2) < h) { ... }
Наверно, этот фрагмент должен быть таким.
Код:
if(well[i, "Имя"] != well[j, "Имя"] $
well[i, "Z"]-well[j, "Z"] < 0.05 &
sqrt((well[i, "Z"]-well[j, "Z"])**2 +
(well[i, "X"]-well[j, "X"])^2 +
(well[i, "Y"]-well[j, "Y"])^2) < h) { ... }
Если можно, опубликуйте данные, а программистов здесь много.