【发布时间】:2015-03-29 02:05:11
【问题描述】:
我有一些问题,需要您的意见。
假设我有一个包含 2000-3000 行的数据库表,每行都有一个值和一些标识符。我需要提取具有最稳定值(最低价差)的约 100 个连续行。如果可以排除它们,则可以使用一些跳线值。 你会怎么做?你会使用什么算法?
我目前正在为在 Oracle 上运行的数据库使用 SAS Enterprise Guide。我真的不太了解通用 SAS 语言,但我不知道我可以为此使用什么其他语言?一些脚本语言?我的编程知识有限,但这项任务似乎很简单,对吗?
我一直在考虑的算法是:
选择 100 个连续行并计算标准差。将 select 语句增加 1 并再次计算标准偏差。循环穿过整个桌子。 导出标准差最小的行
与 1 相同,但计算方差而不是标准差(基本相同)。当整个表被循环后,再做一次,但从 avg 中排除具有最高值的 1 行。重复此过程,直到排除 5 个跳线并比较结果。 与方法一相比的优缺点?
问题:
- 最好和最简单的方法?
- 首选语言?在 SAS 中可能吗?
- 您还有其他推荐的方法吗?
提前致谢
/尼克拉斯
【问题讨论】:
-
通常我会要求提供代码,但如果您不太了解 SAS 语言,这并不是一件简单的事情。我决定回答是因为我认为这个问题是一个很好的问题,其他人可能会从中找到用处。
-
第 1 部分的术语是移动标准差。对于第 2 部分,为什么异常值只有最大值,最小值呢?
-
Reeza:嗯,我的方法 2 的意思是排除相对于平均值具有最高值(距离)的数字。罗伯特和雷扎:非常感谢!我今天将尝试代码并比较结果。
标签: sql database algorithm sas filtering