1

我有一个纬度和经度列表(每行包含一个标签编号,2个点,它们之间形成一条线),我试图找到从每行中的一个端点到彼此创建的线的距离列表中的行。我正在使用 geosphere(dist2gc) 包和 dplyr。我正在尝试通过循环来做到这一点(因为我无法弄清楚如何让 lapply 做到这一点),并且我想为每次比较创建一个包含距离的新列(所以如果我从 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)
}
4

0 回答 0