Как восстановить набор данных на основе уникального идентификатора - PullRequest
1 голос
/ 12 июля 2019

В поисках решения в Excel или IBM SPSS:

enter image description here

У меня есть набор данных с примерно 95 000 строк.Каждая строка - это один ответ участника на конкретный вопрос.Например, строка 2 - это ответ участника А на вопрос 1, где они указали оценку 2. Как показано на рисунке.

В идеале мне нужна 1 строка ответов на участника, как показано здесь:

enter image description here

Я попробовал VLOOKUP и затем макрос, чтобы удалить # N / A и переместить значения вверх, но память не может даже обработать VLOOKUP, так что это не такжизнеспособный вариант.

Я чувствую, что у меня нет выбора, что делать, но, не выкладывая свой набор данных таким образом, я не могу провести более поздний анализ (позже мне нужно усреднить все участники, где Q5 =80 и т. Д. [Q5 - это код категории]).

Ответы [ 2 ]

3 голосов
/ 12 июля 2019

Вы можете сделать это с помощью сводной таблицы.

Использование Power Query (Excel 2010+) (или Get&Transform в Excel 2016+) дает вам немного больше гибкости, например, в автоматизацииНаименование столбца Заголовки.

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

Если нет, вы можете использовать графический интерфейс, чтобы просто повернуть столбец QuestionNumber

let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"UserID", type text}, {"QuestionNumber", Int64.Type}, {"Score", Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"QuestionNumber", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"QuestionNumber", type text}}, "en-US")[QuestionNumber]), "QuestionNumber", "Score", List.Sum),
    Renames = List.Transform(List.Skip(Table.ColumnNames(#"Pivoted Column"),1), each {_, "Q" &_}),
    #"New Headers" = Table.RenameColumns(#"Pivoted Column", Renames)
in
    #"New Headers"

enter image description here

enter image description here

1 голос
/ 12 июля 2019

SPSS ОТВЕТ:
Запустите этот код в новом окне синтаксиса:

casestovars /id=userid /index=questionNum /separator="".
...