SPSS转换Survey Monkey导出异常日期格式问题求助
解决SurveyMonkey异常日期格式的SPSS处理方案
首先,这个格式"1036914:34:45.00"大概率是导出时的格式错误,实际表示的是相对于某个起始日期的总时长(秒数:分钟:秒.毫秒),结合你提到的实际日期范围(2018年3月底至4月初),我们可以通过以下步骤在SPSS中修复:
步骤1:拆分异常格式的字符串
假设你的原始日期变量名为raw_response_date(字符串类型),先把它拆分成三个部分:
* 创建临时变量存储拆分后的各部分. STRING part1(A20) part2(A2) part3(A6). * 提取第一部分(总秒数). COMPUTE part1 = SUBSTR(raw_response_date, 1, CHAR.INDEX(raw_response_date, ":") - 1). * 提取第二部分(分钟数). COMPUTE part2 = SUBSTR(raw_response_date, CHAR.INDEX(raw_response_date, ":") + 1, CHAR.INDEX(raw_response_date, ":", CHAR.INDEX(raw_response_date, ":") + 1) - CHAR.INDEX(raw_response_date, ":") - 1). * 提取第三部分(秒数,去掉.00后缀). COMPUTE part3 = SUBSTR(raw_response_date, CHAR.INDEX(raw_response_date, ":", CHAR.INDEX(raw_response_date, ":") + 1) + 1). COMPUTE part3_num = NUMBER(SUBSTR(part3, 1, CHAR.INDEX(part3, ".") - 1), F2).
步骤2:计算总时长(秒)
把拆分后的各部分转换成总秒数:
* 计算从起始点到反馈提交的总秒数. COMPUTE total_seconds = NUMBER(part1, F20) + NUMBER(part2, F2)*60 + part3_num.
步骤3:确定起始基准日期
因为你知道实际日期在2018年3月底至4月初,我们可以通过已知的反馈日期反推起始点:
- 找到一条你明确知道提交日期的反馈(比如某条反馈是2018-03-30 14:30:00提交的)
- 用这条反馈的
total_seconds值,计算起始日期的SPSS日期时间值:
* 示例:已知正确日期为2018-03-30 14:30:00,对应的total_seconds是X. COMPUTE correct_datetime = DATETIME.DMY(30, 3, 2018, 14, 30, 0). COMPUTE start_datetime = correct_datetime - X.
根据你的日期范围,起始日期大概率在2018-03-18至2018-03-19之间,你可以先测试这个区间的值。
步骤4:生成正确的日期时间
用起始日期加上总秒数,得到正确的提交日期:
* 使用你反推得到的start_datetime值,比如这里假设是2018-03-19 00:00:00. COMPUTE start_datetime = DATETIME.DMY(19, 3, 2018, 0, 0, 0). COMPUTE response_datetime = start_datetime + total_seconds. * 设置变量为可读的日期时间格式. FORMATS response_datetime (DATETIME20). EXECUTE.
验证结果
运行上述代码后,检查生成的response_datetime是否符合你预期的日期范围。如果有偏差,微调start_datetime的日期或时间即可。
内容的提问来源于stack exchange,提问作者Cameron Kormylo
相关产品推荐
相关产品推荐

