chase_dream 发表于 2011-8-17 20:53 
To h3327156: 多谢你的热心帮助。那个B4是笔误,应该是Bn。抱歉实在不好表达。
To glacierccer:谢谢,谢 ...
我总算看懂您要的是什么意思。
另外,我觉得,不知道您的方法是不是用loop来做?
当变量有很多很多个时,譬如1000个或几百个,那样会很累。
当然,glacierccer提供了相当好的思路。如果他提供的方法,您能弄成loop会更好。
我觉得利用Stata特有的矩阵mata来处理不错。【这边的例子是利用Stata12的方法来做】
首先假设您有以下的数据【A到C】 当然,您有可能数据是A1到A1000个,只要把变量名替换掉。
这边的例子是假设您所谓的n为4。
input A B C
1.2 . .
1.3 . .
1.2 . .
1.5 . .
. 1.7 .
. 1.3 .
. 1.9 .
. 2.4 .
. . 2.1
. . 3.2
. . 4.1
. . 5.2
end
foreach v of varlist A-C{
putmata `v'=(`v') if !missing(`v')
}
drop if _n>4
foreach k of varlist A-C{
getmata `k',replace
}
结论:上述程序改成您自己的变量名,4改成您自己的n,会变地很简单
祝 研安 & 顺心
ps.不过不知道您的A变量那一列里的....是不是missiing value,如果是,那就不符合您的状况,请当作没看到此帖吧