我想创建一个列表,其中包含已使用的pid
的值:
pid used
6754 1
9809 1
6434 0
2654 1
7645 1
8979 0
5422 0
1287 1
9875 1
8765 1
7556 0
我尝试了以下方法:
generate list=pid if used==1
但是,此命令将所有内容放在不同的行中。
您能帮我创建此列表吗?
答案 0 :(得分:4)
separate()
命令的levelsof
选项在这里是您的朋友:
clear
input pid used
6754 1
9809 1
6434 0
2654 1
7645 1
8979 0
5422 0
1287 1
9875 1
8765 1
7556 0
end
levelsof pid if used == 1, separate(",") local(pidlist)
这会将所有使用的pid
值存储在本地宏pidlist
中:
display "`pidlist'"
1287,2654,6754,7645,8765,9809,9875
然后,您可以根据需要创建变量:
generate pidlist = "`pidlist'"
list pidlist in 1
+------------------------------------+
| pidlist |
|------------------------------------|
1. | 1287,2654,6754,7645,8765,9809,9875 |
+------------------------------------+
请注意,始终最好避免使用Stata使用的变量名 作为命令。