Создание фрейма данных путем сравнения широты / долготы между шейп-файлами - PullRequest
0 голосов
/ 11 июля 2019

У меня есть два шейп-файла / фрейма данных (я могу легко конвертировать между типами).Один содержит координаты, которые образуют граничную линию, а другой содержит координаты для набора точек, представляющих дома.У них обоих есть столбцы, содержащие long и lat с совпадающими именами столбцов между фреймами данных.

Что я хотел бы сделать, это создать третий фрейм данных, который содержит подмножество точек дома, которые существуют слева от границы,но не правильно.

Используя операторы if, чтобы проверить, находится ли заданная точка дома слева от кадра данных, я попробовал две версии:

df3 <- if(df1$lat < df2$lat){merge(df1,df2)}

df3 <- if(df1$lat[[i]] < df2$lat[[i]){merge(df1,df2)}

Первая возвращает 0 наблюдений, а вторая - нетrun, выдающий ошибку: объект 'i' не найден.Предложения?

edit: вот первые шесть строк обоих фреймов данных.Один из них имеет 130 рядов, а другой имеет 3000 рядов (точки дома).

        lat     long                       geometry transaction.id
1 -80.12898 25.79037 LINESTRING (-80.12165 25.98...         145045
2 -80.13958 25.94337 LINESTRING (-80.12165 25.98...         240471
3 -80.19615 25.89209 LINESTRING (-80.12165 25.98...         495368
4 -80.12024 25.83410 LINESTRING (-80.12165 25.98...         129341
5 -80.14139 25.78359 LINESTRING (-80.12165 25.98...         146586
6 -80.12744 25.96239 LINESTRING (-80.12165 25.98...         232505
        lat     long                       geometry
1 -80.12165 25.98020 LINESTRING (-80.12165 25.98...
2 -80.11889 25.97520 LINESTRING (-80.11889 25.97...
3 -80.11876 25.97795 LINESTRING (-80.11876 25.97...
4 -80.11903 25.97236 LINESTRING (-80.11889 25.97...
5 -80.11918 25.96933 LINESTRING (-80.11903 25.97...
6 -80.11930 25.96639 LINESTRING (-80.11918 25.96...

edit:

v3 <- ifelse(df1$lat < df3$lat, 1, 0) 
df3 <- cbind(df1$lat, df1$long, df1$id, v3)

, кажется, делает чистуюработа!спасибо @ r2evans, но значения не выходят правильно.Я думаю, это потому, что столбец lat и long во втором указанном выше датчатом кадре был приведен из геометрического столбца с двумя латами и двумя long, перечисленными с помощью st_geometry

...