以下数据框表示纬度和经度小数点坐标.我希望使用+和 - 来显示十进制度是北,南,东还是西(在纬度和经度列中).
因此,如果十进制度为N,则纬度为正.如果十进制度为S,则纬度为负.如果十进制度为E,则经度为正,如果经度为负,则经度为负.十进制度是W.
a <- c(1:3)
Lat <- c(54.5, 55.2, 10.1)
NS <- c("N","N","S")
Long <- c(1.2, 0.5, 1.3)
EW <- c("W","E","W")
df1 <- data.frame(a,Lat,NS,Long,EW)
Run Code Online (Sandbox Code Playgroud)
我怎么会在R?任何建议将不胜感激.
用途ifelse:
df1 <- within(df1, {
Lat <- ifelse(NS=="N", Lat, -Lat)
Long <- ifelse(EW=="E", Long, -Long)
})
df1
a Lat NS Long EW
1 1 54.5 N -1.2 W
2 2 55.2 N 0.5 E
3 3 -10.1 S -1.3 W
Run Code Online (Sandbox Code Playgroud)
我within()用来减少打字的数量.