Как обрабатывать (Google Forms - электронная таблица) "флажки" ответов в SPSS



Я анализирую электронный опрос, который я сделал с помощью Google Forms, и у меня есть следующая проблема.



На один из вопросов можно получить несколько ответов в виде флажков, как показано на рисунке ниже. Вопрос на греческом языке, поэтому я добавил Некоторые Choice1, Choice2, Choice3 и т.д. Рядом с каждым ответом, чтобы облегчить мой вопрос.



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



В моих данных, когда кто-то выбрал, скажем Choice1 и Choice2,
У меня будет ответ, который является конкатенацией строки, которые он проверял, были разделены запятыми.



В этом случае это будет:




Choice1, Choice2




Если кто-то другой проверил Choice1, Choice2 и Choice4
его ответ в моих данных будет:




Choice1, Choice2, Choice4




Проблема в том, что SPSS не имеет способа разделения подстрок (разделенных запятыми) и понимания того, какие варианты выбора есть у каждого случая. Или, может быть, есть способ, но я его не знаю:)



Когда я, для например, сделайте простой частотный анализ для этого вопроса он производит таблицу, которая воспринимает




Choice1, Choice2




Как совершенно отличный случай от




Choice1, Choice2, Choice4




В идеале я хотел бы каким-то образом сказать SPSS, чтобы она считала частоту каждого уникального выбора (Choice1, Choice2, Choice3 и т. д.), а не каждую уникальную комбинацию этих вариантов.
Разве это возможно? И если это так, не могли бы вы указать мне на документацию, которую я нужно учиться, чтобы это произошло?



Thx много!

827   3  

3 ответов:

Представьте, что вы работаете со следующими данными, которые представляют собой CSV-файл, загруженный из вашей онлайн-формы. Скопируйте и вставьте текст ниже и сохраните его в текстовый файл с именем "CourseInterestSurvey.CSV".

Timestamp,Which courses are you interested in?,What software do you use?
12/28/2012 11:57:56,"Research Methods, Data Visualization","Gnumeric, SPSS, R"
12/28/2012 11:58:09,Data Visualization,"SPSS, Stata, R"
12/28/2012 11:59:09,"Research Dissemination, Graphic Design",Adobe InDesign
12/28/2012 11:59:27,"Data Analysis, Data Visualization, Graphic Design","Excel, OpenOffice.org/Libre Office, Stata"
12/28/2012 11:59:44,Data Visualization,"R, Adobe Illustrator"

Считайте его в SPSS, используя следующий синтаксис:

GET DATA
  /TYPE=TXT
  /FILE="path\to\CourseInterestSurvey.CSV"
  /DELCASE=LINE
  /DELIMITERS=","
  /QUALIFIER='"'
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=2
  /IMPORTCASE=ALL
  /VARIABLES=
  Timestamp A19
  CourseInterest A49
  Software A41.
CACHE.
EXECUTE.
DATASET NAME DataSet2 WINDOW=FRONT.
LIST.

В настоящее время он выглядит так, как показано на рисунке ниже-три колонки (одна временная метка и две с нужными нам данными):

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

Работая с некоторым синтаксисом из здесь , мы можем разделить ячейки следующим образом:

* We know the string does not excede 50 characters.
* We got that information while we were reading our data in.
STRING #temp(a50). 
* We're going to work on the "CourseInterest" variable.
COMPUTE #temp=CourseInterest. 
* We're going to create 3 new variables with the prefix "CourseInterest".
* You should modify this according to the actual number of options your data has
* and the maximum length of one of the strings in your data.
VECTOR CourseInterest(3, a25). 
* Here's where the actual variable creation takes place.
LOOP #i = 1 TO 3. 
.  COMPUTE #index=index(#temp,","). 
.  DO IF   #index GT 0. 
.    COMPUTE CourseInterest(#i)=LTRIM(substr(#temp,1, #index-1)). 
.    COMPUTE #temp=substr(#temp, #index+1). 
.  ELSE. 
.    COMPUTE CourseInterest(#i)=LTRIM(#temp). 
.    COMPUTE #temp=''. 
.  END IF. 
END LOOP IF #index EQ 0. 
LIST.

Результат:

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

Это относится только к одному столбцу за раз, и я недостаточно знаком, чтобы изменить его для работы с несколькими столбцами. Однако, если вы переключитесь на R, у меня уже есть некоторые готовые функции , помогающие справиться именно с такими ситуациями.

К сожалению, нет простого "встроенного" способа достичь этого,но это, безусловно, достижимо с формулами электронных таблиц или сценарием Google Apps.

Используя формулы, предполагая, что ваш вопрос с флажком попадает в столбец D, это приведет к" нормализованному " списку:

=ArrayFormula(TRANSPOSE(SPLIT(CONCAENATE(D2:D&",");",")))

И вы можете превратить его в список из двух столбцов и запросить, чтобы вернуть таблицу частот:

=ArrayFormula(QUERY(TRANSPOSE(SPLIT(CONCATENATE(D2:D&",");","))&{"",""};"select Col1, count(Col2) group by Col1 label Col1 'Item', count(Col2) 'Frequency'";0))

Если ваша локаль использует запятую в качестве десятичного разделителя, замените {"",""} с {""\""}.

Легко разделить поля на отдельные переменные, как описано выше. Теперь определите эти переменные как набор множественных ответов (Analyze > Tables > Multiple Response Set), и вы можете проанализировать их с помощью процедур CTABLES или MULT REPONSE и построить график с помощью построителя диаграмм

Comments

    Ничего не найдено.