2016-07-27 75 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中控制檯,但不保存它載體「LAT」 我需要60加分/學位,如果度值是正的,並且如果度值爲負

回答

0

正確的語法在這裏使用ifelse減去度分鐘/ 60如下:

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

ifelse返回一個向量,其中組件i = lat1[i] - lat2[i]/60 if lat[i] < 0lat[1] + lat2[i]/60否則,您不需要將賦值放入其中。