У меня возникли проблемы при попытке пространственного соединения между шейп-файлом и таблицей данных в csv.
Here's what my data looks like:
Point Shapefile's attribute data (StudentID):
ID Address Long Lat
123.00 street long lat
456.00 street long lat
789.01 street long lat
223.00 street long lat
412.02 street long lat
Data Table (Table):
ID Name Age School
123.00 name age school
456.00 name age school
789.01 name age school
223.00 name age school
412.02 name age school
Важное примечание: StudentID
содержит примерно 500 записей, тогда как в таблице только 250. Некоторые записи в StudentID
НЕ будут совпадать.
Проблема 1:
У меня есть файл Excel, который я преобразовал в csv для импорта в R. При выполнении объединения я заметил, что некоторые из моих форматов данных изменились в столбце идентификатора (так что 123.00
станет 123;
456.00
до 456;
789.01
то же самое). Однако, когда я открыл файл csv в блокноте, форматирование было правильным. Я попытался прочитать таблицу как файл .txt, но безуспешно. Кто-нибудь знает, почему это происходит и как это преодолеть?
Поскольку я не мог объединить данные на основе точного совпадения, я решил попробовать частичное соединение, потому что IDS уникальны независимо от последних двух цифр, что привело меня к проблеме 2...
Проблема 2:
Вот что я использовал, чтобы присоединиться к двум:
StudentID@data = data.frame(StudentID@data, data[charmatch(StudentID@data$ID,Table$ID,])
Это объединило данные, но также, как и ожидалось, вернуло строки с NA. Я использовал na.omit для удаления строк, и полученные данные содержали все совпадающие. Однако в шейп-файле ВСЕ мои точки остались. Почему эти точки остались, когда записи были удалены?
.00
может быть проблемой Excel - я помню, что он делает непредсказуемые вещи при экспорте в csv. Для «присоединения» вы пытались использоватьmerge
? - person alexwhan   schedule 07.03.2013