R中的平均坐标点?

Average Coordinate Points in R?

我有一个 .csv 的物种出现和单个经纬度点,但我试图将它们全部聚合成每个物种的单一 'average' 坐标点。从一些挖掘中我发现简单的平均值可能存在问题(高海拔或低海拔异常值可能会导致问题)。有人对如何在 R 中执行此 easily/quickly 有建议吗?谢谢

数据是这样显示的,但我总共出现了 71,000 多次。

物种 经度 纬度
冷杉 -111.112964 41.199112
亚利桑那冷杉 -110.8678 37.0349
双叶冷杉 -111.650833 41.82
双叶冷杉 -113.377722 41.950833

正在使用

your_data <- tibble::tribble(~species, ~longitude, ~latitude, "Abies amabilis", -111.112964, 41.199112, "Abies arizonica", -110.8678,  37.0349, "Abies bifolia", -111.650833,     41.82, "Abies bifolia", -113.377722, 41.950833)

你可以

aggregate(. ~ species, your_data, mean)

计算平均值。这个returns:

          species longitude latitude
1  Abies amabilis -111.1130 41.19911
2 Abies arizonica -110.8678 37.03490
3   Abies bifolia -112.5143 41.88542

或者,dplyr 可用于

library(dplyr)

your_data %>%
  group_by(species) %>%
  summarize(across(.fns = mean))

同样returns

# A tibble: 3 x 3
  species         longitude latitude
  <chr>               <dbl>    <dbl>
1 Abies amabilis      -111.     41.2
2 Abies arizonica     -111.     37.0
3 Abies bifolia       -113.     41.9

使用data.table

library(data.table)
setDT(df1)[, lapply(.SD, mean), species]