sas - SAS:将观察结果放入 bin 并保留最接近它的观察结果
问题描述
我有一个包含一些变量的观察列表。我需要将它们放入一个容器中(如下),并且在每个最接近容器编号的容器中只保留一个观察值:
- 垃圾箱
- 0.94
- 0.96
- 0.98
- 1.00
- 1.02
- 1.04
- 1.06
数据
Variable Price Value_to_bin Closest bin
a 0.630527682 0.935 0.94
b 0.441296291 0.979 0.98
c 0.350173415 0.969
d 0.920932417 0.993
e 0.361863025 0.959 0.96
f 0.027205755 1.003 1
g 0.878286791 1.045
h 0.206434946 0.971
i 0.259272294 1.021 1.02
j 0.081774863 0.982
k 0.01146324 0.992
l 0.283027273 1.037 1.04
m 0.188747537 0.993
n 0.554786 1.064 1.06
o 0.784774 1.065
然后只保留最接近 bin 值的那些(即删除那些在 'closest_bin' 变量中有空白的那些。
我尝试使用 proc rank,但我无法摆脱其余部分或与 bin 匹配(据我所知,'closest' 之类的东西并不存在)。
解决方案
具有自动重新合并功能的 SAS SQL 可以非常简洁地执行查询。一致的分箱到 0.02 级别允许ROUND
函数将分箱值计算到最接近的 0.02 单位。
proc sql;
create table want as
select
var,
price,
value,
round(value,0.02) as valbin_02
from have
group by valbin_02
having abs(valbin_02-value) = min(abs(valbin_02-value))
;
推荐阅读
- arrays - 如何在 VbScript 中查找某个单词最后一次作为元素出现在数组中的时间
- php - 通过 PHP / Soap / WSDL 发送带有证书的 XML
- go - 是否可以在 GO 中找到 Windows 上加载的 DLL 的路径?
- asp.net-core - Identity Server 4 身份验证太慢
- javascript - 使用 queryselector 查找“:”会返回错误
- azure - 如何从 powershell 中的服务总线消息中获取消息正文?
- sql - 缩放 CASE WHEN 以检索非节假日日期
- wordpress - 如何在 YITH MULTI VENDOR 和 YITH AFFILIATE 中添加产品类别明智佣金
- asp.net-core-mvc - 在 .NET Core MVC 上创建模糊路由
- javascript - 如何使复选框用作多选选项?