Differences between revisions 5 and 14 (spanning 9 versions)
Revision 5 as of 2020-03-02 14:38:22
Size: 2654
Comment:
Revision 14 as of 2022-08-11 16:42:36
Size: 2603
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= 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 9: Line 12:
== Numeric Data ==
Line 10: Line 14:
== Datetime == '''Numeric''' data is stored as double-precision floating point.
Line 12: 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 14: Line 18:
SPSS tries to be clever about reading data. Given the literal value 123.45...
Line 16: 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 21: 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 29: Line 30:
=== Datetime formats === === Date and Time Formats ===
Line 31: 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` || ||
'''Date''' data is stored as the number of seconds from midnight, October 14, 1582 to midnight on the specified date.
Line 43: Line 34:
'''Datetime''' data is stored as the number of seconds to the specified time on the specified date.
Line 44: Line 36:
'''Time''' data is stored as the number of seconds. This ''can'' be imagined as the number of seconds from midnight to the specified time, but that is not a ''necessary'' construct.
Line 45: Line 38:
Keep in mind that 1 day = 60 (seconds) * 60 (minutes) * 24 (hours) = 86400 seconds.
Line 46: Line 40:
=== Parse Timestamps === ||'''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` ||
||`EDATE10` ||`dd.mm.yyyy` ||
||`SDATE10` ||`yyyy/mm/dd` ||
Line 48: Line 51:
A macro for timestamp conversion, from `dd/mm/yyyy hh:mm` to SPSS `DATETIME20`: Note that `MMM` appears as `JAN`, not `001`.
Line 50: Line 53:
{{{
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.
Note that `DATE11` and `DATE9` differ in the representation of years ''(4 and 2 digits respectively)''. The American, European, and Sortable date formats have a similar feature by swapping `[AES]DATE10` with `[AES]DATE8`.
Line 67: Line 55:
!str2datetime in=mytimestampvar out=mydatetimevar.
}}}
See [[SPSS/DateTimeFunctions|here]] for the built-in library of date and time functions.
Line 74: Line 61:
== Numerics == == String Data ==
Line 76: Line 63:
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 78: Line 65:
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

Date data is stored as the number of seconds from midnight, October 14, 1582 to midnight on the specified date.

Datetime data is stored as the number of seconds to the specified time on the specified date.

Time data is stored as the number of seconds. This can be imagined as the number of seconds from midnight to the specified time, but that is not a necessary construct.

Keep in mind that 1 day = 60 (seconds) * 60 (minutes) * 24 (hours) = 86400 seconds.

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

EDATE10

dd.mm.yyyy

SDATE10

yyyy/mm/dd

Note that MMM appears as JAN, not 001.

Note that DATE11 and DATE9 differ in the representation of years (4 and 2 digits respectively). The American, European, and Sortable date formats have a similar feature by swapping [AES]DATE10 with [AES]DATE8.

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.


CategoryRicottone

SPSS/DataTypes (last edited 2023-06-13 05:00:25 by DominicRicottone)