将观察结果复制到同一变量中的空条目中

时间:2014-07-14 16:07:27

标签: stata

我刚从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']。我有点卡在这里。什么是解决问题的最佳方法?

1 个答案:

答案 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>

错失的估算是统计分析中的一个重要主题,因此请确保您知道自己在做什么。