如何将度数小数分 (DDM) 转换为 R 数据集中的度数小数?

How to convert Degree Decimal Minutes (DDM) to Degree Decimals in R dataset?

我有一个看起来像这样的数据集

        lat_deg lat_min long_deg long_min
site 1     44     4.971    80     27.934
site 2
site 3
site 4
site 5


site <- c(1,2,3)
lat_deg <- c(44,44,44)
lat_min <- c(4.971, 4.977, 4.986)
long_deg <- c(80,80,80)
long_min <- c(27.934, 27.977, 27.986)
df <- data.frame(site, lat_deg, lat_min, long_deg, long_min)

如何将其转换为十进制度数?我所有的 lats 都在 N 和 longs 在 W,所以我不太担心,除了最后的标志应该是正确的。另外,我可以从这里计算高度吗?

注意:关于 SO 的所有其他问题都集中在 DMS 到 DD 上。这个问题以前没有人问过。

根据给定的数据,这是一种使用 dplyr:

的方法
df %>%
  mutate(lat = lat_deg + lat_min/60,
         long = long_deg + long_min/60)

returns

  site lat_deg lat_min long_deg long_min      lat     long
1    1      44   4.971       80   27.934 44.08285 80.46557
2    2      44   4.977       80   27.977 44.08295 80.46628
3    3      44   4.986       80   27.986 44.08310 80.46643

或者干脆

df$lat <- df$lat_deg + df$lat_min/60
df$long <- df$long_deg + df$long_min/60