Итеративное создание нескольких новых столбцов в 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)
}