spss - 每行中的多重比较
问题描述
在 SPSS 上,我有一个包含 6000 多人的电子表格。每个人至少参加过两次测试,并且同一测试至少有两个结果。有些人参加了两次以上的测试。SPSS 是否可以查看这两项测试是否在 6 个月内,以及它们是否包括该人旁边的这些测试的结果并删除所有其他结果?
数据结构
PersonNo Test Date Test Result Test Date 2 Test result 2, Test Date 3, Test result 3
PersonNo 512, 23-Aug-18, 65, 22-May-18, 72
问题
PersonNo 98432, 09-Feb-18, 74, 06-Nov-18, 76, 10-Aug-18, 67
PersonNo 91203, 10-Dec-18, 75, 10-Sep-18, 65
PersonNo 75432, 01-Jan-18, 65, 01-Dec-18, 65
我多么想要
PersonNo 98432, 09-Feb-18, 74, 10-Aug-18, 67
PersonNo 91203, 10-Dec-18, 75, 10-Sep-18, 65
75432 号人员因在 6 个月内没有两次检测结果而被移除
解决方案
要查看在TestDate
变量的 6 个月内进行了哪些测试,您可以使用DATEDIFF(date1, date2, units)
. 由于不清楚您有多少 TestDate 字段,您可能需要重新排序变量以使用 VECTOR 命令循环它们。
* assumes there are up to 11 tests each respondent may have taken.
VECTOR nextTestDate = TestDate2 TO TestDate 11 .
VECTOR nextTestResult = TestResult2 TO TestResult11 .
LOOP #i = 1 TO 10 .
* if not within 6 months then set date & result to sysmis .
DO IF (DATEDIFF(TestDate, nextTestDate(#i), 'days') > 182) .
RECODE nextTestDate(#i) nextTestResult(#i) (ELSE = SYSMIS) .
END IF .
END LOOP .
EXE .
VECTOR
如果您只有几个 TestDate 字段要检查,则不需要在其中执行此操作。从这里您可以删除其中不再包含任何数据的任何变量(使用 DESC TestResult2 TO TestResult11 轻松检查)。
推荐阅读
- c# - HtmlAgilityPack 无法检测到 div
- python - 个人资料图片不会在 python/flask 中上传
- embedded-linux - BlueZ:没有可用的默认控制器
- javascript - Mongoose,即时解构到数据库文档?
- react-native - 如何将 Redux Toolkit 的 createSlice 创建的 Redux 操作传递到 React Native 中的屏幕
- javascript - 从数组中插入输入范围的数据列表
- azure - Azure DevOps Pipeline 创建空 zip
- spring - Spring Boot Webflux(反应式 Web 应用程序)不在文件系统上提供静态内容
- html - ž 显示得比其他字母大
- python - Python脚本的区别