Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Январь 2006 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
2
|
3
|
4
|
6
|
7
|
8
|
|
9
|
10
|
11
|
13
|
14
|
15
|
|
16
|
17
|
18
|
20
|
21
|
22
|
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
Статистика
0 за неделю
Статистика в SPSS: за пределами кнопочного интерфейса. Выпуск 2
Статистика в SPSS: за пределами кнопочного интерфейса. Выпуск 2
В рассылке используются материалы веб-сайта www.spsstools.ru
Содержание выпуска
Команды BEGIN DATA - END DATA и DATA LISTНовое на сайте www.spsstools.ru
Здравствуйте, уважаемые подписчики,
Команды BEGIN DATA - END DATA и DATA LIST
В этом выпуске мы с вами более подробно остановимся на рассмотрении команды BEGIN DATA - END DATA, которая встретилась нам в синтаксисе из первого выпуска.
Между BEGIN DATA и END DATA в синтаксисе помещают данные, которые необходимо ввести в редактор данных SPSS. Зачем это нужно? Ведь обычно данные вводятся в SPSS либо непосредственно в редакторе, либо с помощью специальных приложений SPSS (например, DATA ENTRY), либо экспортируются из других программ, например MS Excel, Access и т.д., либо мы открываем уже готовый файл данных *.sav. Это так, однако в ряде случаев удобнее задать данные непосредственно в синтаксисе. Например, в нашем случае, где мы демонстрируем действие конкретной программы и для этого нужно в качестве примера заполнить матрицу данных какими-то значениями. Комментируя синтаксис, мы могли бы указать ссылку на файл данных, который он обрабатывает, или предложить вам самостоятельно "придумать" свои данные чтобы посмотреть на работу программы. Но проще будет прямо в синтаксисе "набросать" для примера данные и все пользователи получат одинаковый результат, который можно будет прокомментировать. Часто ввод данных через команды BEGIN DATA - END DATA удобнее осуществлять и в ходе отладки синтаксиса, пробуя различные конфигурации, не переключаясь между окнами. Особенно полезной оказывается комбинация BEGIN DATA - END DATA, если вы задаёте вопрос относительно обработки данных своему коллеге, в форум или список рассылки. Вряд ли вы будете отсылать вместе с вопросом и файл данных, который может содержать слишком ценную информацию или быть слишком большим или сложным. И всё же гораздо проще отвечать на вопрос если имеется "живой" пример данных с которым можно начинать экспериментировать. Если данные имеют сложную структуру, её проще показать на примере, чем объяснять как хитроумно сгруппированы ваши наблюдения. С помощью рассматриваемой команды вы можете сделать такой пример, который займёт всего несколько строчек в тексте письма. В конце концов, создавая свой синтаксис, полезно включить в него пример обрабатываемых данных для того, чтобы быстро посмотреть и вспомнить в будущем что же делает эта программа.
Будем считать, что вы теперь убеждены в необходимости использования команды BEGIN DATA - END DATA. Рассмотрим, как с ней работать.
Собственно, в использовании команды BEGIN DATA - END DATA никаких сложностей нет. Обычно данные вводятся практически так, как они должны выглядеть в редакторе.
Например, видя запись
BEGIN DATA
1 2 -4
1.3 0
3 3 3
END DATA.
мы можем предположить, что в результате в редакторе появятся 3 переменные и
3 наблюдения. При этом во втором наблюдении первой переменной значение будет
равно 1.3, а второе наблюдение третьей переменной будет пропущено. Однако это
будет так, если мы предварительно опишем характер вводимых данных с помощью
другой команды: DATA LIST. Именно она (да в некоторых случаях еще MATRIX DATA)
может (и должна) предшествовать конструкции BEGIN DATA - END DATA чтобы та сработала
без ошибок. Для приведённого примера "правильный" вариант синтаксиса должен
выглядеть как
DATA LIST LIST / x y z.
BEGIN DATA
1 2 -4
1.3 0
3 3 3
END DATA.
В редакторе данных будут созданы 3 переменных (с именами x, y и z). Первая будет
иметь вектор-столбец значений 1, 1.3, 3, вторая: 2, 0, 3, третья: -4, "пропуск",
3. Заметьте, что после слов BEGIN DATA точка отсутствует! Команда заканчивается
лишь после слов END DATA.
В таком виде комбинация DATA LIST - BEGIN DATA - END DATA встречается наиболее часто. Также распространены ситуации когда некоторые переменные нужно ввести как строковые (по умолчанию программа интерпретирует все переменные как числа). Тогда описание немного усложнится:
DATA LIST LIST / x(A5) y(F2.0) z(F3.1).
BEGIN DATA
abc 2 -4
dfddfd 0
3 3.6 3.2
END DATA.
Теперь переменная x является строковой с длиной 5 символов. Так, последняя "d" (шестая буква) во втором наблюдении будет утеряна, а тройка из третьего наблюдения будет рассматриваться как текст, а не число. Значение 3.6 из третьего наблюдения будет отображаться как 4 (округлено до целого), так как числовой формат переменной y F2.0 не предусматривает знаков после запятой. Однако сама дробная часть будет сохранена (число 3.6 вы можете увидеть в строке ввода если подведёте курсор в соответствующую ячейку редактора данных) и при необходимости десятые доли можно будет отобразить. Переменная z также будет числовой и программа отобразит 1 знак после запятой. Кстати, те же правила вывода переменных сохраняются и при выводе значений переменных в окне результатов.
Если вводимые строки содержат пробелы, при вводе данных возникнут трудности. Обычно пробелы (а также несколько пробелов подряд, символы табуляции и запятые) понимаются как разделители значений. Решение может состоять в "закавычивании" текстовых значений или задании специальных разделителей в параметрах DATA LIST. Например, команды
DATA LIST LIST / x(A5) y(F2.0) z(F3.1).
BEGIN DATA
abc 2 -4
"dfd d" 0
3 3.6 3.2
END DATA.
и
DATA LIST LIST (",") / x(A5) y(F2.0) z(F3.1).
BEGIN DATA
abc, 2, -4
dfd d, 0,
3, 3.6, 3.2
END DATA.
дадут одинаковые (нужные нам) результаты. Во втором случае мы заставляем SPSS обращать внимание лишь на запятые в качестве разделителей. Тогда пробел между dfd и d во втором наблюдении не воспринимается как разделитель.
В жизни случаются разные ситуации. Иногда бывает, что данные мы взяли в буфер обмена из какой-то другой программы и при вставке в синтаксис они оказались "вытянутыми" в одну строку: abc 2 -4 "dfd d" 0 3 3.6 3.2. И в этом случае проблем с вводом не возникнет, если в команде DATA LIST в качестве параметра мы укажем ключевое слово FREE:
DATA LIST FREE / x(A5) y(F2.0) z(F3.1).
BEGIN DATA
abc 2 -4 "dfd d" 0 ,, 3 3.6 3.2
END DATA.
Программа последовательно читает значения и заносит их сначала в первое наблюдение первой переменной, затем в первое наблюдение переменной y, затем в первое наблюдение z, потом во второе наблюдение x и так далее. Есть тонкость. Если в предыдущем случае пустое наблюдение стояло в последней колонке и интерпретировалось правильно, в данном случае пропуск должен быть в явном виде обозначен двойными разделителями, например, запятыми. Как вариант - одной десятичной точкой. Внимание! Если двойные запятые убрать, программа прочитает в качестве второго наблюдения переменной z тройку, а последнее наблюдение исключит как неполное.
Тут нам приоткрывается сакральный смысл ключевых слов LIST и FREE. В первом случае одна строка интерпретируется как одно наблюдение, и конец строки означает переход к следующему наблюдению. Во втором случае в одной строке мы можем последовательно задать значения более чем одного наблюдения. Выбирайте наиболее удобный вариант.
Существует ещё одно значение параметра, составляющее альтернативу LIST и FREE. Это ключевое слово FIXED, используемое по умолчанию, если в явном виде параметр структуры данных не указан. Пример использования FIXED:
DATA LIST FIXED / x 1-5 (A) y 6-8(F) z 9-11 (F) .
BEGIN DATA
abc 2 -4
dfd d 0
3 3.6 3.2
END DATA.
Как видно, в данной команде мы указываем лишь формат переменных без указания правил их отображения. Кроме этого, мы явно указываем в каких колонках находятся значения той или иной переменной. Например, значения переменной x составляют первые 5 символов каждой строки между командами BEGIN DATA - END DATA.
Таким образом, мы рассмотрели наиболее часто используемые приёмы ввода данных с помощью команд BEGIN DATA - END DATA. При этом мы затронули более сложную команду DATA LIST, которая носит более универсальный характер и способна читать данные не только из текста синтаксиса, но и из внешних текстовых файлов. Кроме этого, она имеет параметры, позволяющие относить к одному и тому же наблюдению несколько строк данных, пропускать строки, содержащие заголовки переменных и т.д. За подробной спецификацией программы DATA LIST следует обратиться к справочнику.
Примеры комбинирования DATA LIST - BEGIN DATA - END DATA можно
найти в следующих файлах синтаксиса на сайте www.spsstools.ru:
http://www.spsstools.ru/Syntax/BlockDesign/CRDesigns.txt
http://www.spsstools.ru/Syntax/AUC/IncrementalAUC.txt
http://www.spsstools.ru/Syntax/ChartsTables/GraphCumulativePcRetiredByCategoricalVar.txt
... и многих других.
Отметим, что существуют и альтернативные способы ввода данных через синтаксис. Среди самых распространённых - ссылка на "стандартные" файлы данных, поставляемые обычно в комплекте с SPSS. Так, например, обычно SPSS инсталлируется в директорию Program Files на жестком диске C: компьютера. У большинства пользователей SPSS, таким образом, существует файл C:\Program Files\SPSS\employee data.sav, который содержит множество числовых и категориальных переменных и вполне подходит для многих экспериментов по обработке данных. Файл можно загрузить в редактор данных с помощью команды
GET FILE='C:\Program Files\SPSS\Employee data.sav'.
Этот метод ссылки на данные очень популярен, так как большинство пользователей SPSS из разных стран, выполнив эту команду, получат одни и те же данные в редакторе, а значит и аналогичные результаты при исполнении остального синтаксиса. "Не повезёт" лишь тем, кто проинсталлировал SPSS в другую директорию, или стёр/переместил файл примера. Но и тут дело поправимое: достаточно изменить путь в параметре команды, либо восстановить файл с установочного диска SPSS.
Другой достаточно часто встречаемый метод заключается в использовании многофункциональной команды INPUT PROGRAM. Пожалуй, именно она и станет предметом нашего внимания в следующем выпуске рассылки.
До новых встреч,
ведущий рассылки Балабанов Антон
Новое на сайте www.spsstools.ru
Переведены и добавлены следующие примеры синтаксиса в раздел "Таблицы и графики" (http://www.spsstools.ru/SampleSyntax.htm#ChartsAndTables):
Вывести название группы в заголовок таблицы.SPS
http://www.spsstools.ru/Syntax/ChartsTables/PrintActualNameGroupIdInHeading.txt
Построить таблицу "среднее плюс-минус стандартное отклонение".sps
http://www.spsstools.ru/Syntax/ChartsTables/PrintMeanPlusMinusStddevInTable.txt
Поместить 4 переменные в одну частотную таблицу.SPS
http://www.spsstools.ru/Syntax/ChartsTables/Put4VariablesInTheSameFREQtable.txt
Отобразить "пустые" категории в таблице.SPS
http://www.spsstools.ru/Syntax/ChartsTables/ShowEmptyCategoryInTables.txt
Отобразить "пустые" категории в таблице (второй способ).SPS
http://www.spsstools.ru/Syntax/ChartsTables/ShowEmptyCategoriesInTablesSecondMethod.txt
Указать число действительных наблюдений в примечании к таблице.SPS
http://www.spsstools.ru/Syntax/ChartsTables/ShowNumberOfValidCasesInTableFootnote.txt
Таблица, где список переменных генерируется макросом.SPS (Пример
использования конструкции !IF ...!ELSE ... !IFEND)
http://www.spsstools.ru/Syntax/ChartsTables/TableWhereListOfVariablesIsByMacro.txt
Статистика по подгруппам переменных.SPS
http://www.spsstools.ru/Syntax/ChartsTables/StatisticsForGroupingOfVariables.txt
Отсортировать категории по убыванию частоты, поставив "Другое"
на последнее место.SPS
http://www.spsstools.ru/Syntax/ChartsTables/SortCategoriesWithOthersLast.txt
Использование макроса и команды CTABLE.SPS
http://www.spsstools.ru/Syntax/ChartsTables/UsingMacrosAndCTABLE.txt
© См. www.spsstools.ru, 2005-2006
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.others.spss Архив рассылки |
Отписаться
Вебом
Почтой
Вспомнить пароль |
В избранное | ||