Как нормализовать нерегулярные значения данных

Из таблицы PHP я получаю значения, графически представленные. Однако некоторые из полученных данных являются «поврежденными» или неверными, что дает нечувствительное графическое представление.

Часы (ось y) – это накопленные часы, как и одометр автомобиля, за исключением часов, а ось x – соответствующие даты. Логично, что завтрашние часы будут больше или равны часам сегодняшнего дня, это должно быть либо плоской линией, либо увеличиваться. Но, увы, это результат:

введите описание изображения здесь

Я бы хотел нормализовать эти данные, чтобы иметь несколько более «правильное» представление, которое выглядит примерно так:

введите описание изображения здесь

Я читал некоторую информацию о нормализации данных ( процесс нормализации базы данных , нормализация набора данных с нерегулярными интервалами в Python , нормализация данных и стандартизация ), но я не могу понять, как реально нормализовать данные . У меня либо действительно есть светловолосый момент, либо я просто не понимаю.

В: Как я могу нормализовать этот набор данных с помощью Bash – какие будут шаги – я был бы благодарен за псевдокод или описание связанных шагов.

One Solution collect form web for “Как нормализовать нерегулярные значения данных”

Ваша иллюстрация действительно не соответствует вашим словам. Если вы имеете в виду то, что говорите (и если я правильно понимаю ваши слова), и если у вас есть список значений «Y» (т. Е. Количество часов от 0 до 2400), которое вы хотите нормализовать, вы может делать то, что вы хотите, с помощью этого awk кода:

 awk ' NR==1 { prev_good = $1 } { data = $1 if (data < prev_good) { count++ next } if (count > 0) { count++ for (i = 1; i < count; i++) { print prev_good + (data-prev_good) * i / count } count = 0 } print data prev_good = data }' 

Предполагается, что первая точка данных действительна ( NR==1 { prev_good = $1 } ). После этого, если точка данных меньше предыдущей хорошей стоимости ( prev_good , которая является наибольшим значением, полученным до сих пор), считайте ее недействительной: пропустите ее ( next ) и подсчитайте пропущенные пункты. Когда вы получаете хорошее значение, count тестов – если оно положительное, это означает, что мы пропустили некоторые данные, поэтому генерируем много данных, линейно интерполируя между последним хорошим значением и текущим значением. Затем напечатайте новое действительное значение.

Если ваш вход содержит «X» и «Y» (дата и часы), это становится немного более сложным, особенно если интервалы «X» не являются однородными.

Вы могли бы сделать это как чистый сценарий оболочки, но это было бы глупо. awk , однако, кажется хорошим инструментом для работы.

  • Запуск emacsclient со сценарием
  • Каков наиболее эффективный способ регистрации ошибок сценария оболочки crontab с ошибкой?
  • Диапазонные переменные для настраиваемых пользователем циклов
  • тайм-аут вызывает, когда цикл чтения заканчивается, когда `cat` отключен
  • Сценарий Bash застревает во время выполнения
  • process Count каждого пользователя в команде ps aux
  • Подключение 3 соединений OpenVPN через скрипт оболочки
  • Как установка бита Setuid влияет на сценарии оболочки, которые запускаются при загрузке системы, до того, как произошел какой-либо логин?
  • отправка нескольких вложений с помощью uuencode
  • Невозможно запустить сценарий tmux при загрузке
  • Как открыть и работать с терминалами с помощью сценария bash?
  • Interesting Posts

    Потеря (в реальном времени) разрешения при поступлении от корня к себе

    Остановите колесо мыши на клавиатуре вниз

    Как запустить самую последнюю команду в AIX?

    Как использовать GoToMeeting в Linux

    zsh: установить TERM = screen-256color в tmux, но xterm-256color без tmux

    Oracle Weblogic IPv6 с базой данных Oracle на IPv4

    Можно ли сохранить союз привилегий пользователя и привилегии root при использовании sudo?

    Приложение терпит неудачу, если не в его каталоге?

    Копирование адреса активного каталога в VIFM

    IP-пакетный сниффер / фильтр / манипулятор с использованием интерфейса TUN

    Почему я не получаю сообщение, которое не соответствует, когда я запускаю этот скрипт?

    Зачем было необходимо перезапустить веб-сервер apache для копирования файлов через php на недавно смонтированный файл?

    Переместить все файлы с определенным расширением из нескольких подкаталогов в один каталог

    Обработка имени файла, подобного опции, в оболочке

    Pen Drive Не обнаружен в Linux

    Linux и Unix - лучшая ОС в мире.