我刚从Excel导入数据。但是,由于收集过程,某些条目为空。例如,对于变量1,我的观察结果可能是:
1
[empty]
[empty]
2
[empty]
3
[empty]
[empty]
[empty]
我现在想要在它之前用非空填充这些空条目。因此,使用上面的例子,我希望产生类似的东西:
1
1
1
2
2
3
3
3
3
如您所见,我想用前面的非空插槽填充空插槽。我尝试了这段代码:
gen Judge1p = Judge1
forvalues x = 1/1395 {
if Judge1[`x'] != "" replace Judge1p[`x'] = Judge1[`x']
else replace Judge1p[`x'] = Judge1p[`x'-1]
}
然而,Stata显示“权重不允许”的错误,我在网上进行了一些搜索。它说Stata不允许用户在等号之前放置[`x']。我有点卡在这里。什么是解决问题的最佳方法?
答案 0 :(得分:3)
目前尚不清楚[empty]
的含义。我猜他们不见了。
以下是一个例子;不需要循环。
clear all
set more off
*----- example data -----
input ///
var1
1
1
.
.
.
6
.
.
.
4
5
.
.
end
list
*----- what you want -----
gen var2 = var1
replace var2 = cond(missing(var2), var2[_n-1], var2)
list
在没有显式循环的情况下,可以在Stata中完成很多事情。参考是
Cox,Nicholas J.“演讲Stata:如何在不疯狂的情况下重复自己。”Stata Journal 1,no。 1(2001):86-97。
Stata中的缺失对于数字类型表示为.
,对于字符串类型表示为(空白)。如果你需要更复杂的东西,你必须在帖子中说清楚。
有关任何不明确的内容,请参阅help <command>
。
错失的估算是统计分析中的一个重要主题,因此请确保您知道自己在做什么。