Stata 分类变量中的拆分ID

Stata 分类变量中的拆分ID,stata,Stata,我有一个ID为的变量: clear input ID 1 . 2 1 . 3 4 5 4 4 6 end 如何创建单独的分类变量,ID作为名称,值为1和2(如果生成的变量与ID匹配,则为后者) 例如,变量\u ID\u 1应如下所示: 2 . 1 2 . 1 1 1 1 1 1 有什么想法吗?另一种方法: clear input ID 1 . 2 1 . 3 4 5 4 4 6 end forvalues j = 1/6 { generate ID_`j' = 1 + (ID

我有一个ID为的变量:

clear

input ID
1
.
2
1
.
3
4
5
4
4
6
end
如何创建单独的分类变量,ID作为名称,值为
1
2
(如果生成的变量与ID匹配,则为后者)

例如,变量
\u ID\u 1
应如下所示:

2
.
1
2
.
1
1
1
1
1
1
有什么想法吗?

另一种方法:

clear

input ID
1
.
2
1
.
3
4
5
4
4
6
end

forvalues j = 1/6 { 
    generate ID_`j' = 1 + (ID == `j') if ID != . 
} 

list 

请注意,1表示标识,0表示差异,missing表示缺失更适合大多数可能的用途。此解决方案在这里适用,但我的解决方案更通用,可以在不了解任何ID的情况下使用,包括值之间是否有间隙。@PearlySpencer:你是对的;我没有异议,我投了你的票。接受权掌握在OP手中,而不是我的。在其他方面,你主张准确地回答所提出的问题,而不是推诿或想象一个更一般的问题。除此之外,我的贡献首先是写
单独的
。评论留给OP,以防他/她回来。循环更直观,因此OP接受您的答案时不会感到惊讶。这很公平。我真的不知道。我经常与不懂循环的非程序员交流。相反,SO的读者应该是程序员,一个精通一种语言的程序员当然应该知道循环。奇怪的是,尽管有各种不同,我看到R讨论中的主题“通常有比循环更好的方法”是很常见的,就像Stata用户经常被说服不要在观察上循环一样。