我使用cluster
命令,因内存不足而遇到困难。为了解决这个问题,我想删除所有重复的观察结果。
我想通过变量A,B和C进行聚类,并且我确定重复值如下:
/* Create dummy data */
input id A B C
1 1 1 1
2 1 1 1
3 1 1 1
4 2 2 2
5 2 2 2
6 2 2 2
7 2 2 2
8 3 3 3
9 3 3 3
10 4 4 4
end
sort A B C id
duplicates tag A B C, gen(dup_tag)
我想添加一个变量dup_ID
,它告诉我id
s 2和3是id
1,id
s 5和6 {{{的重复项1}} 4,依此类推。我怎么能这样做?
id
答案 0 :(得分:2)
duplicates
是一个很棒的命令(请参阅我的手册条目,为什么我这么说),但你可以直接这样做:
bysort A B C : gen tag = _n == 1
将第一次出现的重复A B C
标记为1,将所有其他重复标记为0.反过来使用_n > 1
,_n != 1
或其他任何方式。
编辑:
那么标记观察的id
只是
by A B C: gen dup_id = id[1]
有关by:
的基本技巧,请参阅(例如)this discussion
答案 1 :(得分:1)
您可以使用kCGImageSourceThumbnailMaxPixelSize
上的下标A B C
来引用每组[1]
中的第一个观察结果。请注意ID
中的(id)
参数,该参数按bysort
排序,但仅按id
,A
和B
标识这些组。
C
产生
clear
input id A B C
1 1 1 1
2 1 1 1
3 1 1 1
4 2 2 2
5 2 2 2
6 2 2 2
7 2 2 2
8 3 3 3
9 3 3 3
10 4 4 4
end
bysort A B C (id): gen dup_id = id[1]
li, noobs sepby(dup_id)