gpt4 book ai didi

sas - 删除SAS中相同的列

转载 作者:行者123 更新时间:2023-12-01 19:32:24 24 4
gpt4 key购买 nike

我正在处理一个非常大的数据集,其中多次包含相同的列,但具有不同的列名称(字符和数字)。有谁知道如何查找和删除这些相同的列?

示例

A    B      C     D     E    F    G
12 ab 12 ab 8 h 12
14 cd 14 cd 65 j 14
6 fs 6 fs 3 g 6
. . . . 4 q .
3 d 3 d 5 d 3

A-G 是变量名称,我希望能够看到 ACG相同,然后删除除一个之外的所有内容。BD 也是相同的。我只想保留一个。

这可能吗?

最佳答案

这里是使用陈胜林在评论中提出的技术的示例。

data have ;
input A B $ C D $ E F $ G ;
cards;
12 ab 12 ab 8 h 12
14 cd 14 cd 65 j 14
6 fs 6 fs 3 g 6
. . . . 4 q .
3 d 3 d 5 d 3
;;;;

查找唯一的数字列。

proc transpose data=have out=tall_numbers ;
var _numeric_;
run;
proc sort data=tall_numbers nodupkey out=keep_numbers(keep=_name_);
by col: ;
run;

找到唯一的字符列。

proc transpose data=have out=tall_characters ;
var _character_;
run;
proc sort data=tall_characters nodupkey out=keep_characters(keep=_name_);
by col: ;
run;

获取列的组合列表。

proc sql noprint ;
select _name_
into :keep_list separated by ' '
from (select _name_ from keep_characters
union select _name_ from keep_numbers)
order by 1
;
quit;

创建仅包含唯一列的新表。

data want ; 
set have ;
keep &keep_list ;
run;

关于sas - 删除SAS中相同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32182529/

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