sas - 检测数据中的单位差异 (SAS)
问题描述
我有两组财务数据,由于单位错误,它们往往包含差异,例如,一个数据集中的 10000 美元可能是另一个数据集中的 1000 美元。
我正在尝试编写检查此类差异的代码,但我能想到的唯一方法是将两个变量分开,看看差异是否在 0.001、0.01、0.1、10、100 等的表中,但它会很难抓住所有的差异。
有没有更聪明的方法来做到这一点?
解决方案
使用proc compare
. 确保两个数据集按行或特定组以相同的顺序排序。根据需要使用该by
语句。有关选项的更多信息可以在文档中找到。
示例 - 将修改后的cars
数据集与sashelp.cars
:
data cars_modified;
set sashelp.cars;
if(mod(_N_, 2) = 0) then msrp = msrp - 100;
run;
proc compare base = sashelp.cars
compare = cars_modified
out = out_differences
outnoequal
outdif
noprint;
var msrp;
run;
仅在 中输出具有差异的观测值out_differences
:
_TYPE_ _OBS_ MSRP
DIF 2 $-100
DIF 4 $-100
DIF 6 $-100
DIF 8 $-100
DIF 10 $-100
...
推荐阅读
- java - Maven Spring Live Reload 排除 Java 源文件
- asp.net-core-mvc - 如何覆盖 View 方法并从覆盖的 View 返回 Partial View?
- python - 删除行尾具有相同字符串的行并将剩余行以另一种格式保存在另一个文件中的脚本
- angular - Angular - 错误 TS2345:'string | 类型的参数 null' 不能分配给“字符串”类型的参数
- jsf - 为什么只在 inputText 值表达式上调用 getter?
- excel - VBA复制到行组
- javascript - 我怎样才能只为全名制作大写字母
- python - 对象没有属性“驱动程序”
- reactjs - 如果访问器是函数,如何在反应表中搜索/过滤
- snowflake-cloud-data-platform - 使用 snowsql GET 运行数据卸载时出现 403 错误