楼主: victorttcc
1361 4

[数据管理求助] STATA中,这个问题怎么解? [推广有奖]

  • 0关注
  • 7粉丝

已卖:629份资源

讲师

64%

还不是VIP/贵宾

-

威望
0
论坛币
66974 个
通用积分
4.5252
学术水平
32 点
热心指数
29 点
信用等级
17 点
经验
7455 点
帖子
222
精华
0
在线时间
789 小时
注册时间
2007-9-25
最后登录
2025-4-25

楼主
victorttcc 发表于 2017-12-18 15:54:42 |AI写论文
300论坛币
数据如下:
三个变量:id,n,a1。其中id是唯一的,n是依据id生成的流水号。也即id和n是一一对应关系。
我现在需要根据id和n之间的对应关系,将a1的值也改变。比如,第一行的a1值20406097,我发现这个值在id中为555。那么,就将其改为555。
a1有些值不在id范围内,可以不改,或者可以改成缺失值。


数据结构.jpg

最佳答案

仰望星空abc 查看完整内容

这个问题比较简单,总体思路是用merge命令。(1)将数据分成两个dta文件,分别 命名为master 与user.,master中包括id 与n两个变量;user中包括a1这个变量。然后代码如下: use user.dta,clear gen id=a1 save user.dta,replace use master.dta,clear merge m:1 id using user.dta keep if _merge==3|_merge==2 replace a1=n save master.dta,replace
关键词:Stata tata 对应关系 缺失值 流水号

沙发
仰望星空abc 学生认证  发表于 2017-12-18 15:54:43
这个问题比较简单,总体思路是用merge命令。(1)将数据分成两个dta文件,分别 命名为master 与user.,master中包括id 与n两个变量;user中包括a1这个变量。然后代码如下:
use user.dta,clear
gen id=a1
save user.dta,replace
use master.dta,clear
merge m:1 id  using user.dta
keep if _merge==3|_merge==2
replace a1=n
save master.dta,replace
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
黃河泉 + 3 + 3 + 3 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
victorttcc 发表于 2017-12-18 16:22:58
有一句我写错了。
这句我重新表达一下。
我现在需要根据id和n之间的对应关系,将a1的值也改变。比如,第一行的a1值20406097,我发现这个值可以在id中找到,并且id中的这个值对应的n为555。那么,就将a1的这个值也改为555。

板凳
victorttcc 发表于 2017-12-18 18:00:30
仰望星空abc 发表于 2017-12-18 15:54
这个问题比较简单,总体思路是用merge命令。(1)将数据分成两个dta文件,分别 命名为master 与user.,maste ...
嗯。非常感谢~~~

报纸
黃河泉 在职认证  发表于 2017-12-18 18:50:04
仰望星空abc 发表于 2017-12-18 15:54
这个问题比较简单,总体思路是用merge命令。(1)将数据分成两个dta文件,分别 命名为master 与user.,maste ...
为什么不是
  1. merge 1:1
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-5 20:12