У меня есть фрейм данных (df) со следующей структурой:
ID Long_Ref Lat_Ref Long_1 Lat_1 Long_2 Lat_2
A -71.69 -33.39 -70.29 -33.39 -71.69 -34.19
B -72.39 -34.34 -74.29 -31.19 -70.54 -33.38
C -70.14 -32.38 -70.62 -32.37 -69.76 -32.22
D -70.39 -33.54 -70.42 -34.99 -68.69 -32.33
Я пытаюсь добавить новые столбцы в существующий фрейм данных с расстоянием между Ref и 1, Ref и 2 и т. Д., Используя distHaversine.
Это код, с которым я работал до сих пор:
for (i in 1:2){
for (j in 1:nrow(df)){
df[,paste("Dist_Mts_",i,sep="")][j]<-distHaversine(matrix(c(df$Long_Ref,df$Lat_Ref),ncol=2),
matrix(c(as.matrix(df[,paste("Long_",i,sep="")]),
as.matrix(df[,paste("Lat_",i,sep="")])),ncol=2))
}
}
Тем не менее, я получаю следующую ошибку:
Error in .pointsToMatrix(p2) * toRad :
non-numeric argument to binary operator
In addition: Warning message:
In .pointsToMatrix(p2) : NAs introduced by coercion
Буду признателен за любую помощь. Спасибо.