Size: 3523
Comment:
|
Size: 1782
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from SPSSFormats = SPSS Formats = SPSS supports numeric variables and strings, with conversion options and some automatic conversion functionality. There are several formats on top of numerics that impact visualization, not storage. |
= SPSS Data Types = SPSS exposes numeric and string data types. Certain specialized forms of data are handled by formats that impact visualization and export, not storage. The primary example of this is date and time data. |
Line 10: | Line 12: |
== Numeric Data == | |
Line 11: | Line 14: |
== Datetime == | Numeric data is stored as double-precision floating point. |
Line 13: | Line 16: |
=== A warning about data input === | Data formats adjust the visualized/exported representation of a data point, often only truncating the value. Adjusting these data formats does not destroy precision. |
Line 15: | Line 18: |
SPSS tries to be clever about reading data. | Given the literal value 123.45... |
Line 17: | Line 20: |
Under the format `TIME`, all of these are read in as `"01:02"`, even though the format is a minimum of 5-wide: * `"1:2"` * `"01 2"` * `"01:02"` |
||'''General Format''' ||'''Format''' ||'''Representation''' || ||Fw ||F8 ||123 || ||Fw.d ||F8.1 ||123.4 || ||Nw ||N8 ||00000123 || ||Nw.d ||N8.1 ||000123.4 || |
Line 22: | Line 26: |
Under the format `DATE`, all of these are read in as `"28-OCT-90"`: * `"28-OCT-90"` * `"28/10/1990"` * `"28.OCT.90"` * `"28 October, 1990"` |
See [[SPSS/NumericFunctions|here]] for the built-in library of numeric functions. |
Line 30: | Line 30: |
=== Datetime formats === | === Date and Time Formats === |
Line 32: | Line 32: |
||'''Format''' ||'''Appears as...''' ||'''Note''' || ||DATETIME20 ||`dd-MMM-yyyy hh:mm:ss` ||`MMM` is as JAN, not 001|| ||DATETIME18 ||`dd-MMM-yyyy hh:mm` ||`MMM` is as JAN, not 001|| ||DATE11 ||`dd-MMM-yyyy` ||`MMM` is as JAN, not 001|| ||DATE7 ||`dd-MMM-yy` ||`MMM` is as JAN, not 001|| ||TIME8 ||`hh:mm:ss` || || ||TIME5 ||`hh:mm` || || ||ADATE10 ||`mm/dd/yyyy` || || ||ADATE8 ||`mm/dd/yy` || || ||EDATE10 ||`dd.mm.yyyy` || || ||EDATE8 ||`dd.mm.yy` || || |
||'''Format''' ||'''Representation''' || ||DATETIME20 ||`dd-MMM-yyyy hh:mm:ss` || ||DATETIME17 ||`dd-MMM-yyyy hh:mm` || ||DATE11 ||`dd-MMM-yyyy` || ||DATE9 ||`dd-MMM-yy` || ||TIME8 ||`hh:mm:ss` || ||TIME5 ||`hh:mm` || ||ADATE10 ||`mm/dd/yyyy` || |
Line 44: | Line 41: |
Note that `MMM` appears as `JAN`, not `001`. | |
Line 45: | Line 43: |
=== Parse Timestamps === A macro for timestamp conversion, from `dd/mm/yyyy hh:mm` to SPSS `DATETIME20`: {{{ define !str2datetime (in=!tokens(1) / out=!cmdend) numeric !out (DATETIME20). compute !out = date.mdy( number(char.substr(!in,1,2), f2), number(char.substr(!in,4,2), f2), number(char.substr(!in,7,4), f4) ) + time.hms( number(char.substr(!in,12,2), f2), number(char.substr(!in,15,2), f2), 0 ) . !enddefine. !str2datetime in=mytimestampvar out=mydatetimevar. }}} === Create Timestamps === This is unfortunately long-winded. {{{ data list free / a. begin data. 1 end data. dataset name TIMESTAMP. execute. string tmp_date (A11) datetime (A20). compute tmp_date = $date. alter type tmp_date (date11). compute tmp_time = $time. * Built-in formats. compute datetime=string(tmp_date, ADATE10). execute. * Manual formats. compute datetime=concat( char.substr(string(xdate.year(tmp_date),N4),3,2), string(xdate.month(tmp_date),N2), string(xdate.mday(tmp_date),N2), "_", string(xdate.hour(tmp_time),N2), string(xdate.minute(tmp_time),N2), ). execute. do if $casenum=1. write outfile 'timestamp.sps' /1 "define !timestamp() " datetime " !enddefine.". end if. dataset close TIMESTAMP. execute. insert file='timestamp.sps'. execute. }}} |
See [[SPSS/DateTimeFunctions|here]] for the built-in library of date and time functions. |
Line 119: | Line 49: |
== Numerics == | == String Data == |
Line 121: | Line 51: |
Formats only truncate the displayed value, or the value translated into data files. SPSS always retains data to original precision. | String data is stored at a fixed length. This length is defined and adjusted through the format; `Aw` where `w` is the width. |
Line 123: | Line 53: |
Given 123.45... ||'''Format''' ||'''Using...''' ||'''Appears as...''' || ||Fw ||F8 ||123 || ||Fw.d ||F8.1 ||123.4 || ||Nw ||N8 ||00000123 || ||Nw.d ||N8.1 ||000123.4 || ---- == Strings == String variables are only formatted to a length. The format is specified as `AN` where `N` is the width. |
See [[SPSS/StringFunctions|here]] for the built-in library of string functions. |
SPSS Data Types
SPSS exposes numeric and string data types.
Certain specialized forms of data are handled by formats that impact visualization and export, not storage. The primary example of this is date and time data.
Numeric Data
Numeric data is stored as double-precision floating point.
Data formats adjust the visualized/exported representation of a data point, often only truncating the value. Adjusting these data formats does not destroy precision.
Given the literal value 123.45...
General Format |
Format |
Representation |
Fw |
F8 |
123 |
Fw.d |
F8.1 |
123.4 |
Nw |
N8 |
00000123 |
Nw.d |
N8.1 |
000123.4 |
See here for the built-in library of numeric functions.
Date and Time Formats
Format |
Representation |
DATETIME20 |
dd-MMM-yyyy hh:mm:ss |
DATETIME17 |
dd-MMM-yyyy hh:mm |
DATE11 |
dd-MMM-yyyy |
DATE9 |
dd-MMM-yy |
TIME8 |
hh:mm:ss |
TIME5 |
hh:mm |
ADATE10 |
mm/dd/yyyy |
Note that MMM appears as JAN, not 001.
See here for the built-in library of date and time functions.
String Data
String data is stored at a fixed length. This length is defined and adjusted through the format; Aw where w is the width.
See here for the built-in library of string functions.