time-series - 在 Stata 中插值数值而不创建新变量

标签 time-series interpolation stata

我有一个纵向数据集,其中包含每重复观察的结果 (id 1,2,3...)。我有数千个各种类型的变量。某些行(由变量 to_interpolate == 1 指示)需要根据上一个和下一个相同 id 的值对其数值变量进行线性插值(它们为空)年。

由于我无法命名所有变量,因此我创建了一个数字变量的varlist。另外,我不想重新创建数千个额外变量,因此我需要替换现有的缺失值。

到目前为止我做了什么:

quietly ds, has(type numeric)
local varlist `r(varlist)'

sort id year
foreach var of local varlist {
   by id: ipolate `var' year replace(`var') if to_interpolate==1
}

无论我做什么,我都会收到一条错误消息:

factor variables and time-series operators not allowed
r(101);

我的问题:

  1. “替换”的语法是否正确?如果不是,如何替换现有变量值而不是创建新变量?
  2. 如果错误意味着我的变量列表中存在因素 - 如何检测它们?
  3. 如果没有,如何解决这个问题?

谢谢!

最佳答案

正如 @William Lisowski 所强调的,“ipolate”没有 replace() 选项。任何其语法图不允许的内容都是被禁止的。无论如何,保留原件副本作为审计追踪的一部分肯定值得赞扬。

sort id 
quietly ds, has(type numeric)

foreach var in `r(varlist)' {
   by id: ipolate `var' year, gen(`var'2) 
}

关于time-series - 在 Stata 中插值数值而不创建新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45535410/

相关文章:

c++ - 使用CImg绘制三角形并使用插值填充颜色

python - Armadillo /MKL/其他? C++ 中的插值相当于 Scipy 插值

r - 将 Stata 转换为 R : collapse

interaction - Stata 中的非线性交互项

python - 如何在python中的时间序列之间有效地映射数据

r - 当数据不连续时,如何随机采样最接近值 y 的 n 个值?

python - 使用 Scippy 的 ndimage.map_coordinates 进行插值时出现意外结果

R有条件地将日期时间从一个数据帧匹配到第二个数据帧中最近的日期时间字段

Python 时间序列预测(销量)

r - 将textmate与通过ssh访问的应用程序一起使用