首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据唯一标识符将值从一个观察复制到另一个

根据唯一标识符将值从一个观察复制到另一个
EN

Stack Overflow用户
提问于 2021-04-08 10:16:49
回答 1查看 695关注 0票数 1

我有一个包含许多变量的数据集。对于一些观察结果,我希望将它们的值(在大量变量中)替换为基于唯一标识符的另一个观察值(对于相同的变量)。唯一标识符不等于Stata观察号(_n)。

这类似于其他几个线程,但据我所知,它们的解决方案不是完全可转移的。

  1. 在Stata中将值从一个变量传递到另一个变量,但我没有简单的词汇关系可以用
  2. https://www.stata.com/statalist/archive/2013-06/msg00056.html,但我不能依赖Stata观察号,因为数据集是动态的,观测的顺序和数量可能会发生变化。

下面是一段基于第二个链接的解决方案的代码,但根据我的问题进行了调整(我在最后一个宏中更改了方括号的内容)。我知道这个代码不能工作,因为这里的方括号只能包含Stata数(_n)。但我认为这应能很好地说明我正在努力实现的目标:

在本例中,我希望将unique_id为25和38的观测值替换为unique_id为21的观测值。应该对我的本地变量列表中的所有变量执行此操作。

代码语言:javascript
运行
复制
set obs 50

local vlist v1 v2 v3 v4 v5

foreach v of local vlist { 
    generate `v' = runiform()
}

gen unique_id=_n+20  // this is just to illustrate that the unique_id is not equal to _n


foreach var of local vlist {
replace `var' =`var'[unique_id==21] if unique_id==25 | unique_id==38
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67001914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档