我有一个带有ID变量的SAS数据集,它应该在人员层面上是唯一的,但实际上有重复。我想要做的是创建一个重复的ID,只有当一个人有重复的ID值时才会填写,如下所示:
ID Dupe_ID
1
2 1
2 1
3
4 2
4 2
非常感谢任何帮助!
答案 0 :(得分:3)
datos[(vertice,arista,k)]=media
mMin=0.00009
mMax=0.013
cmap = cm.ScalarMappable(matplotlib.colors.Normalize(vmin=mMin, vmax=mMax), cmap = plt.get_cmap('spectral'))
ax.scatter(vertice, arista, k, c= cmap.to_rgba(media), marker='o',s=40)
答案 1 :(得分:1)
在SAS 9.3+中,proc sort
上有一个可以使用的新选项。如果您想将数据拆分为“实际上唯一”和“非唯一”数据集(为了以后处理非独特数据并找出它们应该是什么),以下内容将会这样做:
proc sort data=have out=nonuniquedata nouniquekey uniqueout=uniquedata;
by id;
run;
NOUNIQUEKEY
基本上与NODUPKEY
相反:它只保留非唯一的记录。因此,“主要”输出数据集将具有非唯一记录,“uniqueout”数据集将具有唯一的记录。
答案 2 :(得分:0)
它的处理方式略有不同,但为了防止它对您和/或其他人有用 - proc sort
有一个方便的简单dupout=
选项来分隔非唯一关键观察:
proc sort data=have out=want dupout=dups ;
by id ;
run ;
每个id
的第一次出现将转到want
数据集。具有相同id
的任何后续观察都将转到dups
数据集
答案 3 :(得分:0)
proc sort data = dataset out = sortdata;
by id;
run;
data younameit;
length dup_id 1;
set sortdata;
by id;
if first.id and last.id then dup_id =;
else dup_id =1;
run;
我的方法是使用First.
和Last.
的数据步骤
您需要在PROCEDURE proc sort
处执行排序
"by" immediately after set statement
和First.
之前的数据步骤Last.
可用于数据步骤。
如果观察本身是副群的最新观察和最后观察(即Id),则它必须是唯一的项目。假设有两个观察值为id = 2,则先前的观察值为first.id
,后者则为last.id
。