Страницы 1
Итак господа эксперты сложный вопрос
Есть два прибора, которые собирают показания. Показания между приборами частично пересекаются. Нужно удалить эти пересечения и оставить только одну копию данных. Желательно ту, которая имеет максимальную точность. Проблема в том, что данные имеют неточные совпадения.
Привожу пример. прибор один записывает показания:
25.10.2011, 10:31, 23.8, 56.23, Moscow
25.10.2011, 11:35, 32.1, 16.20, Novgorod
25.20.2011, 11:56, 21.1, 53.14, Omsk
25.20.2011, 12:01, 33.6, 52.24, Tomsk
Прибор 2 пишет показания счетчиков:
25.10.2011, 10:32, 23.84, 56.23, Moscow City
25.10.2011, 11:14, 31.6, 14.26, Ufa
25.20.2011, 12:03, 33.61, 52.24, Tomsk
Итого на двух приборах у нас пересекаются данные по Москве и Томску. Но пересекаются не точно. Нужно как-то удалять эти данные. Как критерий подходят все три столбца, кроме даты и названия пункта.
Вообще с помощью чего подобные задачи на нестрогие совпадения можно было бы решить?
Неактивен
Luca, перевести в строку и просто обрезать?
Неактивен
Вот с этого места поподробнее, пожалуйста. Как именно определяется более точный прибор? Я пока не вижу никаких ошибок, так как данные, снятые позднее, имеют большую величину.
Кстати, да, тоже же хотел спросить и забыл, какой критерий точности?
Неактивен
Критерий точности - знаки после запятой.
т.е. к примеру 100 метров это не точно, 100.12 (сто метров и 12 см) это точно.
Это в моем примере точные данные больше. В реальности они могут быть несколько меньше и не обязательно что все будут отличаться. К примеру только 2 строки могут расходиться.
Добавлено спустя 03 мин 28 с:
Кстати, в теории было бы интересно узнать, как сделать так, чтобы удалялись значения с меньшей точностью. Т.е. априори предположим, что все самые точные значения имеют второй знак после точки (тут разделитель целой и дробной части точка).
Но опять, не все равно строки могут расходиться немного.
Неактивен
2 Luca
А почему средние арифметические не годятся? Расхождения вроде бы мизер, сказать какой прибор более точен на основании одних знаков после запятой как то затруднительно
Нет, так мы целей гнусных не достигнем... / В.П. Вишневский
Неактивен
Нужно удалить эти пересечения и оставить только одну копию данных. Желательно ту, которая имеет максимальную точность.
Из курса "Численные методы" мы знаем, что для операций, в которых участвуют значения с разной степенью погрешности, первым делом является выравнивание этих самых погрешностей. Т.е. более точное значение округляется до степени менее точного. 2,0023654 + 1 ≈ 2 + 1 ≈ 3
Другими словами:
1. Более точное округляем
2. Для совпадающих строк вычисляем среднее арифметическое (с округлением!!!!!!!!!1111111).
3. Курим округление
Редактировался Sergey2408 (26-10-11 22:11:16)
Неактивен
Luca, тебе из каждых двух различных значений требуется оставить только одно, в котором больше знаков после запятой? Ок.
Что является средством реализации? Плюсы, sql-запрос?
Sergey2408, тогда уж дайте ссылку на http://ru.wikipedia.org/wiki/%D0%9C%D0% … 0%BE%D0%B2
Редактировался Дестер (26-10-11 22:15:57)
Неактивен
Или тебе конкретная реализация нужна? Тогда давай язык.
Язык C#, PowerShell, Python. Хотя, учитывая то, что данные табличные, возможно можно было бы как-то средствами Excel.
К сообщению прикрепляю реальные данные. Прибор в данном случае сейсмограф. Цветами для наглядности выделены дубликаты данных.
Неактивен
К сообщению прикрепляю реальные данные. Прибор в данном случае сейсмограф. Цветами для наглядности выделены дубликаты данных.
Блин, в этих данных расхождения такие, что ни о какой точности по числу знаков после запятой, имхо, речи быть не может.
23,738 122,821 12.9.2011 5:15 5,1 43,1 TAIWAN REGION
24,28 122,8 12.9.2011 5:15 5.3 33 Район Тайваня
5,039 127,411 12.9.2011 7:30 5 117,1 PHILIPPINE ISLANDS REGION
5,13 127,37 12.9.2011 7:30 5.2 130 Район Филиппинских островов
Имхо, когда разница в десятках перед запятой - делать заключение о точности, по количеству соток, как то неразумно
Редактировался TrollWINNT (27-10-11 20:47:35)
Нет, так мы целей гнусных не достигнем... / В.П. Вишневский
Неактивен
TrollWINNT, значит надо брать 4 максимально совпадающих поля. А глубина да... видимо погрешность большая получается.
Добавлено спустя 45 мин 38 с:
MOP3E, если надумал серьезно заморачиваться на эту тему - не напрягайся т.к. эта тема для меня носит по большей части академический интерес.
Неактивен
Страницы 1