2016-07-27 1 views
0

У меня есть смешанный набор данных как северного (положительного), так и отрицательного столбца широты и отдельный столбец минут в данных Рамка. Я использовал простой Lat + (минуты/60), чтобы преобразовать это в десятичные градусы.Как избежать ошибки, возникшей из-за знака минус южных широт, когда смешанный набор широт преобразуется от градусов до десятичной степени, используя R

lat1 <- c(7, -7, 6, -0, -1, 6, 8, -7, 6, 6) 
lat2 <- c(7.4, 55.7, 32.6, 8.9, 47.5, 25.6, 6.8, 45.7, 24.6, 7.6) 

ifelse(lat1<0,(lat <- lat1-(lat2/60)),(lat <- lat1+(lat2/60))) 

>[1] 7.1233333 -7.9283333 6.5433333 0.1483333 -1.7916667 6.4266667 
[7] 8.1133333 -7.7616667 6.4100000 6.1266667 

этот результат является правильным, но

> lat 
[1] 7.1233333 -6.0716667 6.5433333 0.1483333 -0.2083333 6.4266667 
[7] 8.1133333 -6.2383333 6.4100000 6.1266667 

IfElse утверждения обеспечивает правильный результат в R консоли, но не хранить его в вектор «латы» мне нужно добавить минут/60 до степени, если значение степени положителен и вычитать минут/60 от градусов, если значение степени отрицательно

ответ

0

правильный синтаксис для использования IfElse здесь заключается в следующем:

lat <- ifelse(lat1 < 0, lat1 - lat2/60, lat1 + lat2/60) 

ifelse возвращает вектор, где компонент i = lat1[i] - lat2[i]/60, если lat[i] < 0 и lat[1] + lat2[i]/60 в противном случае вам не нужно вводить задание внутри.