gpt4 book ai didi

duplicates - 从具有 50 多个变量的 SAS 数据集中创建重复表

转载 作者:行者123 更新时间:2023-12-02 05:17:14 25 4
gpt4 key购买 nike

我有一个大型 SAS 数据集(54 个变量和超过 1000 万个观察值)需要加载到 Teradata 中。必须同时出现重复项,并且我的机器未针对 MultiLoad 配置。我想简单地创建一个包含 300,000 个重复项的表,我可以附加到不接受它们的原始负载。我在其他帖子中读到的逻辑似乎适用于只有几个变量的表。是否有另一种方法可以创建一个新表,其中列出了具有所有 54 个变量的相同组合的每个观察值。我试图通过使用 54 个变量的逻辑来避免 proc 排序。查询构建器方法似乎也很低效。谢谢。

最佳答案

使用 proc sort 是一个很好的方法,您只需要创建一个更好的方法来关闭它。

创建一些测试数据。

data have;
x = 1;
y = 'a';
output;
output;
x = 2;
output;
run;

创建一个新字段,基本上相当于将行中的所有字段附加在一起,然后通过 md5()(散列)算法运行它们。这将为您提供一个漂亮的短字段,该字段将唯一标识该行中所有值的组合。

data temp;
length hash $16;
set have;
hash = md5(cats(of _all_));
run;

现在使用 proc sort 和我们的新哈希字段作为键。将重复的记录输出到名为'want'的表中:

proc sort data=temp nodupkey dupout=want;
by hash;
run;

关于duplicates - 从具有 50 多个变量的 SAS 数据集中创建重复表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com