Итеративное создание нескольких новых столбцов в dplyr - широта и долгота

У меня есть список широт и долгот (каждая строка содержит номер маркировки, 2 точки, которые образуют линию между ними), и я пытаюсь найти расстояние от одной из конечных точек в каждой строке до линии, созданной каждым другим строка в списке. Я использую пакет geosphere(dist2gc) и dplyr. Я пытаюсь сделать это с помощью цикла (потому что я не могу понять, как добиться этого), и я хочу создать новый столбец с расстояниями для каждого сравнения (поэтому, если я начну с 10 строк, я буду сравнивать 10 раз 10 и 10 новых столбцов с расстояниями до линий в каждом ряду). Вывод, если я начну с 10x8 data.frame, будет 10x18 data.frame.

Временное имя столбца не работает. Пожалуйста помоги!

Может кто-нибудь помочь мне придумать, как заставить работать переменные имена, или другие подходы, чтобы сделать это?

dist <- function(df){
 idx <- seq(1, nrow(df)) # create index values
 namelist <- df[,2] # extract name list for new columns
  for (i in idx){
   templon <- df[i,3] # pull comparison value point for lat and lon
   templat <- df[i,4]
   tempcoln <- namelist[i]
   df <- mutate(df, !! tempcoln := dist2gc(cbind(Longitude1, Latitude1), 
     cbind(Longitude2, Latitude2), cbind(templon, templat), r=radius, 
     sign=FALSE))
  }
  return(df)
}

0 ответов

Другие вопросы по тегам