# SPSS:从日期变量中提取星期几

本教程由 [www.spss-tutorials.com](/spss-syntax-examples) 提供 SPSS 语法示例。

## 1. 创建空白测试数据

首先,我们创建一个名为 `mydate` 的日期变量,并用一系列 0 值填充,以便后续生成日期范围。

```spss
DATA LIST FREE/mydate.
BEGIN DATA
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
END DATA.

2. 创建日期范围

使用 datesum 函数生成一个从 2016 年 1 月 1 日开始的日期序列,并将其存储在 mydate 变量中。

COMPUTE mydate = DATESUM(DATE.DMY(1,1,2016),$CASENUM,'days').
FORMATS mydate(DATE11).
EXECUTE.
  • COMPUTE mydate = DATESUM(DATE.DMY(1,1,2016),$CASENUM,'days').:计算 mydate 的值。DATE.DMY(1,1,2016) 表示 2016 年 1 月 1 日,$CASENUM 表示当前个案(行)的编号,'days' 表示以天为单位增加。DATESUM 函数将 2016 年 1 月 1 日加上个案编号对应的天数,从而生成一个日期序列。
  • FORMATS mydate(DATE11).:将 mydate 的格式设置为 DATE11,这是一种日期格式,以易于阅读的形式显示日期。
  • EXECUTE.:执行上述命令。

3. 提取星期几

使用 XDATE.WKDAY 函数从 mydate 变量中提取星期几,并将其存储在名为 myday 的新变量中。注意:XDATE.WKDAY 函数返回的 1 代表星期日(Sunday),而不是星期一。

COMPUTE myday = XDATE.WKDAY(mydate).
EXECUTE.
  • COMPUTE myday = XDATE.WKDAY(mydate).:计算 myday 的值,即 mydate 对应的星期几。
  • EXECUTE.:执行上述命令。

4. 为星期几赋值标签 (Value Label)

为了方便理解 myday 变量的值,我们为其添加值标签 (Value Label),将数值 1 到 7 分别对应到星期日到星期六。

VALUE LABELS myday
1 'Sunday'
2 'Monday'
3 'Tuesday'
4 'Wednesday'
5 'Thursday'
6 'Friday'
7 'Saturday'.
  • VALUE LABELS myday:指定要添加值标签的变量是 myday
  • 1 'Sunday':将数值 1 标签为 ‘Sunday’(星期日),以此类推。

现在,myday 变量将显示对应的星期几,而不是数字 1-7。 ```