validation - 仅保存非空数据集
问题描述
我有一个大型数据集,我在其中使用语法进行数据验证。对于每个验证,如果我需要检查的数据有问题,则会创建一个变量并将其设置为 1。然后,对于每个验证,我都会创建一个数据子集,其中仅包含相关案例的相关变量。我仍然使用语法将这些数据文件保存在 excel 中,以便进行检查并更正数据(在数据库中)。
问题是,并非每次我运行检查时我的 50 多个验证都检测到任何有问题的数据,但是保存了 50 多个文件,因为我为每个验证保存了一个文件。只有当文件中有数据时,我才想保存文件。
当前保存文件的语法是:
DATASET ACTIVATE DataSet1.
DATASET COPY error1.
DATASET ACTIVATE error1.
FILTER OFF.
USE ALL.
SELECT IF (var_error1 = 1).
EXECUTE.
SAVE TRANSLATE OUTFILE='path + '_error1.xlsx'
/TYPE=XLS
/VERSION=12
/MAP
/REPLACE
/FIELDNAMES
/CELLS=VALUES
/KEEP=var1 var2 var3 var4.
每次验证都重复此操作。如果没有任何情况违反“error1”的验证,我仍然会得到一个输出文件(它是空的)。
如果确实存在违反验证的情况,是否有任何方法可以更改语法以仅保存数据?
解决方案
以下语法将编写一个新语法,其中包含将文件保存到 excel 的命令 - 仅当文件中有实际案例时。您将每次运行新语法,但 Excel 将仅在相关情况下创建:
DATASET ACTIVATE DataSet1.
DATASET COPY error1.
DATASET ACTIVATE error1.
FILTER OFF.
USE ALL.
SELECT IF (var_error1 = 1).
EXECUTE.
do if $casenum=1.
write outfile='path\tmp\run error1.sps' /"SAVE TRANSLATE OUTFILE='path\var_error1.xlsx'"
/" /TYPE=XLS /VERSION=12 /MAP /REPLACE /FIELDNAMES /CELLS=VALUES /KEEP=var1 var2 var3 var4.".
end if.
exe.
insert file='path\tmp\run error1.sps'.
请根据您的需要编辑“路径”。
请注意,新语法在所有情况下都会写入,但是当文件中没有数据时,语法将为空,因此不会将空文件写入excel。
推荐阅读
- twilio - 是否可以通过 API 获取 Authy Code?
- reporting-services - 如何在 SSRS 中添加基于搜索的多值参数?
- node.js - 无法从 api 端点向前端显示数据
- php - 望远镜在生产上有一些问题
- opencv - OpenCV kmeans二值图像
- python - csv 数据文件,其中写入“bytearray(...)”
- statistics - 当两个特征与目标变量同等相关时,选择哪一个
- dispatch - bixby 必须使用命名的调度短语
- elasticsearch - Elasticsearch 中的排序和偏好
- forms - 如何使用您的 Google 表单中列出的电子邮件地址重新发送电子邮件?