首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较相邻观测值?

如何比较相邻观测值?
EN

Stack Overflow用户
提问于 2018-10-20 18:47:14
回答 1查看 305关注 0票数 0

我有两个数据集,我已经在Stata中附加在一起。

两个数据集中都有一个变量,比如Age。我对数据进行了排序,以便年龄按升序排列。我想删除每个数据集中的观测值,这些数据集对应的年龄不匹配。

数据集1:

代码语言:javascript
复制
Obs Age
1    7
2    8
3   10
4    5

数据集2:

代码语言:javascript
复制
Obs Age
1   10
2    5
3    9
4    7

按升序组合和排序:

代码语言:javascript
复制
Obs Age
1    5
2    5
3    7
4    7
5    8
6    9
7   10
8   10

因此,由于排序时的年龄与观测值56不匹配,所以我想删除它们。本质上,我想要一种方法,在相邻的数字对中循环,比较它们的值,这样我就只剩下相同年龄的对了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-20 18:51:37

重复观察是没有效率的,而且在绝大多数情况下没有必要。

以下几点对我来说是可行的:

代码语言:javascript
复制
clear

input age
5
5
7
7
8
9
10
10
end

generate tag = age != age[_n+1] & age != age[_n-1]
list

     +-----------+
     | age   tag |
     |-----------|
  1. |   5     0 |
  2. |   5     0 |
  3. |   7     0 |
  4. |   7     0 |
  5. |   8     1 |
     |-----------|
  6. |   9     1 |
  7. |  10     0 |
  8. |  10     0 |
     +-----------+

在去掉相关的观察之后,您得到了预期的结果:

代码语言:javascript
复制
keep if tag == 0
list

     +-----------+
     | age   tag |
     |-----------|
  1. |   5     0 |
  2. |   5     0 |
  3. |   7     0 |
  4. |   7     0 |
  5. |  10     0 |
     |-----------|
  6. |  10     0 |
     +-----------+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52908995

复制
相关文章

相似问题

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