Я пытаюсь определить общее расстояние, пройденное животным, используя функцию, которая использует различия в длинных позициях по широте для вывода пройденного расстояния. Возникли проблемы с вложенными циклами.
Функция ComputeDistance принимает аргументы Lat1, Lat2, Long1, Long 2 в указанном порядке. Столбец 5 DistTest содержит значения широты, а 6 содержит значения долготы.
Так что для объекта «output» я пытаюсь получить последовательные расстояния, проходящие через все 38 строк.
например.
ComputeDistance(DistTest[1,5],DistTest[2,5],DistTest[1,6],DistTest[2,6]
с последующим:
ComputeDistance(DistTest[2,5],DistTest[3,5],DistTest[2,6],DistTest[3,6]
с последующим:
ComputeDistance(DistTest[3,5],DistTest[4,5],DistTest[3,6],DistTest[4,6]
....
ComputeDistance(DistTest[37,5],DistTest[38,5],DistTest[37,6],DistTest[38,6]
Я думаю, что проблема в том, что цикл проходит каждую возможную комбинацию DL и EL, а не просто последовательно в порядке.
Ниже приведен код, который я сейчас использую.
## rows 1-37 and rows 2-38
DL <- 1:37
EL <- 2:38
## subsetting for one tagged animal
DistTest <- subset(Dispsum, Tag.ID == 1658)
## creating blank objects to save output in
testid <- c()
testdistance <- c()
for( j in DL){
for( k in EL){
output <- (ComputeDistance(DistTest[j,5], DistTest[k,5],DistTest[j,6], DistTest[k,6]))
Name <- 1658
testid <- rbind(testid, Name)
testdistance <- rbind(testdistance,output)
}
}