作者Meidien (学海无涯回头是岸)
看板Statistics
标题[程式] SAS删除substring重复的样本
时间Mon Jul 12 21:52:58 2021
[软体程式类别]:SAS
[程式问题]:资料处理
[软体熟悉度]:熟悉
[问题叙述]:
大家好,遇到一个资料处理的问题查不太到解法,来请教各位前辈。
我有一组资料长的像下面这样:
data have;
input ObsName $;
cards;
EDZ
ED
E
EDCBA
EDFBA
EDFB
EDY
;
run;
其中,某个obs可能是另一个obs的子字串,例如ED是EDZ、EDCBA等的子字串,
我需要做的是如果某个obs是另一obs的子字串,那麽只保留较长的那一个。
换句说话,想要把have变成下面的资料集:
EDZ
EDCBA
EDFBA
EDY
我目前是试着sort by ObsName,并且加上长度变数会得到:
ObsName Length
E 1
ED 2
EDCBA 5
EDFB 4
EDFBA 5
EDY 3
EDZ 3
感觉从length找local maximum之类的好像可行,但是不确定是不是会遇到例外状况,
这个方法感觉很土法炼钢,不知道位各前辈是否有比较好的做法,还请不吝指教,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.236.212.234 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1626097985.A.8C1.html