Как реструктурировать данные в SPSS Modeler?

#spss #spss-modeler

#spss #spss-modeler

Вопрос:

не могли бы вы посоветовать, как реструктурировать данные, чтобы получить структуру данных, которую можно использовать для моделирования временных рядов в SPSS Modeler?

Например (в настоящее время имеет приведенную ниже структуру)

 ID  Period  Value
ABC  1      100
ABC  2      110
DEF  1      50
DEF  2      50
DEF  3      60
GHJ  5      200
  

(необходимая структура)

 Period ABC DEF GHJ
1      100     50
2      110 50
3          60
5              200
  

Я думал использовать Transpose node, но для такого случая это не работает, поэтому я использовал узел SetToFlag, а затем транспонировал его, но затем нужно как-то заменить значения T / F значениями для соответствующего периода / идентификатора.

Я очень признателен за любую помощь / совет. Заранее большое спасибо.

Ответ №1:

Я предлагаю следующую процедуру с помощью restructure aggregate:

  1. В ТИПЕ node установите «ID» в качестве номинального и «Прочитанные значения»
  2. Используйте узел РЕСТРУКТУРИЗАЦИИ с «ID», переместите его категории в «Создать реструктурированные поля», установите переключатель в положение «использовать значения из других полей» и выберите переменную «Значение»
  3. Используйте AGGREGATE, установите ключ как «Период» и выберите нужные поля для агрегирования, например «ABC», «DEF», «GHJ». Совокупные значения (или max, min, это не имеет значения)
  4. Переименуйте новые переменные с помощью узла ФИЛЬТРА, чтобы избавиться от суффиксов. (Это может раздражать множество переменных, это можно преодолеть с помощью скрипта или хитрого использования RESTRUCTURE , MERGE, value_at(), @FIELDS_BETWEEN(), но это гораздо сложнее объяснить и, вероятно, сейчас не нужно.)

Примечание: 3-я строка вашего примера должна быть:

 GHJ 1 50
  

или это не соответствует желаемой структуре.

Комментарии:

1. Большое спасибо за вашу помощь. Он работает, просто в узле реструктуризации нет опции для «ID» в списке доступных полей (не могли бы вы сообщить, почему он не отображается?) просто «Точка», так что в итоге я использовал узел транспонирования и получил необходимую структуру. В случае, если после обновления данных в узел реструктуризации необходимо добавить больше полей, есть ли способ сделать это автоматически, без каких-либо ручных настроек, чтобы избежать открытия узла и обновления списка созданных реструктурированных полей?