Nie mogę rozwiązać błędu: "zła długość dla wektora powinna wynosić 2" przy próbie obliczenia odległości (drogi startowej) między dwoma punktami (progi/końce drogi startowej). Na domiar złego, nie rozumiem odpowiedzi, takich jak tutaj R error: Wrong length for a vector, should be 2 i zastosować je do mojej sprawy. Uproszczony ramki danych (koniec drogi startowej) pozycji wygląda następująco:geosphere distHaversine() i dplyr - błąd nieprawidłowej długości dla wektora powinien być 2
runways <- data.frame(
RWY_ID = c(1,2,3)
,RWY = c("36R", "36L","01")
,LAT = c(40.08, 40.12, 40.06)
,LON = c(116.59, 116.57, 116.62)
,LAT2 = c(40.05, 40.07,40.09)
,LON2 = c(116.6, 116.57, 116.61)
)
Korzystanie z funkcji distHaversine() z geosfery, staram się obliczyć odległość:
runways <- mutate(runways
, CTD = distHaversine(c(LON, LAT), c(LON2, LAT2))
)
Nie jestem pewien, co Robię źle tutaj. Jeśli wyciągnę pozycję LON LAT, jest to wektor liczbowy o odpowiedniej długości.
myv <- c(runways$LON[1], runways$LAT[1])
myv
[1] 116.59 40.08
str(myv)
num [1:2] 116.6 40.1
Musisz działać "rowwise", lub przechodzisz wszystkie wiersze naraz: 'runways%>% rowwise()%>% mutate (CTD = geosphere :: distHaversine (c (LON, LAT), c (LON2, LAT2))) ' – alistaire
DZIĘKI !!! Alistaire ... życie może być takie łatwe. Zakładam, że komunikat o błędzie wskazuje na fakt, że sortowane wektoryzowane podejście przekracza wymaganą długość 2. – Rainer