我觉得自己就像一个白痴,因为我无法自己解决这个问题,但几个小时徒劳无功,我意识到我真的需要一些帮助:
我将从Excel导入的出生日期数据以这些格式导入SPSS:
2004 *assume year of birth
12-Sep-14
它们作为字符串变量导入SPSS . 当我尝试将变量类型更改为Date时,它们就会消失,这意味着我一直在尝试对其进行编码 . 在线查看答案我相信答案看起来与此类似:
COMPUTE year=number(SUBSTR(string(v1,F8),7,2),F2).
COMPUTE day=number(SUBSTR(string(v1,F8),5,2),F2).
COMPUTE month=number(SUBSTR(string(v1,F8),3,2),F2).
COMPUTE date=DATE.MDY(month,day,year).
FORMAT date(ADATE8).
LIST.
EXECUTE.
但是通过语法手册了解不同的命令,我无法弄清楚我需要为我想要的结果做些什么改变 . 我得到了以下但我显然遗漏了一些东西 .
COMPUTE Year = NUMBER(SUBSTR(STRING(Date,F8),1,4),F2).
EXECUTE.
从理论上说它很容易,但它的语法是我撞墙的地方 . 请帮忙!
2 回答
语法
STRING(Date,F8)
用于将数字转换为字符串,但Date
已经是一个字符串,所以你应该摆脱它 .你有两种不同的情况,你必须以不同的方式工作 - 我会使用
do if
.试试这个:
您可以在
else
之后的某个月和第二天继续 .但是一种不同的方法是改变四位数年份,以便可以在一个命令中读取完整日期 . 在下面的语法中,我将四位数年份更改为当年的1月1日(当然可以更改),然后以相同的格式读取所有日期:
我不清楚那年的行是否实际上是同一个变量的一部分,但是只是以日 - 月 - 年格式转换字符串日期值,你可以像这样使用ALTER TYPE .
改变类型v1(日期(a9) .
如果还有仅年级行,您可以将它们转换为新变量,然后将两者结合起来 .