# 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.DATA LIST FREE/mydate.:定义一个名为mydate的自由格式变量。BEGIN DATA和END DATA:界定数据输入区域,此处输入一些初始值 0。
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。 ```