楼主: xingyun1688
2548 8

[编程问题求助] 求如何通过电话号码merge数据,先识别区号再进行的merge匹配。 [推广有奖]

  • 9关注
  • 20粉丝

已卖:1981份资源

副教授

23%

还不是VIP/贵宾

-

威望
0
论坛币
4969 个
通用积分
158.6433
学术水平
33 点
热心指数
29 点
信用等级
24 点
经验
2591 点
帖子
324
精华
0
在线时间
941 小时
注册时间
2011-4-4
最后登录
2025-10-29

楼主
xingyun1688 学生认证  发表于 2014-5-6 18:38:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如 我有一列变量是区号, 一列变量为电话号码  这样的话如何merge数据 。跪求如何编程。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Merge 电话号码 电话号 电话 如何

沙发
SpencerMeng 在职认证  发表于 2014-5-12 10:29:17
您的意思是含有区号的变量在一个dta中,含有电话号的变量在另一个dta中,然后想把这两个变量放在一起是吧?  假设两个dta中都有共同的一个变量 country
首先先打开一个dta,比如打开里面含有区号的,记住merge之间一定要先sort哦
sort country
merge country using "c:\files\telephone.dta"
合并后可以进行检查 看看是不是完全合并
tab_merge
看看是否全部等于3  if does 那么说明全部合并完毕
可以drop _merge了
试试吧
望采纳
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 热心帮助其他会员
xingyun1688 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

藤椅
xingyun1688 学生认证  发表于 2014-5-12 21:39:13
SpencerMeng 发表于 2014-5-12 10:29
您的意思是含有区号的变量在一个dta中,含有电话号的变量在另一个dta中,然后想把这两个变量放在一起是吧? ...
很感谢你的回复。是这样的: 我有两个数据库 都包含电话号码变量 一开始我的想法是把它们拆开来merge两个数据库,都来觉得没必要。现在我的问题是 我的电话号码里存在分机号 如010 62018885 62026699 等等的数据 我的想法是能发可以用substr()命令将第二个空格后面的数字串取出再生产一列变量。不知道是否可以?

板凳
SpencerMeng 在职认证  发表于 2014-5-12 21:42:49
可以用substr命令
你第二个空格后面的数字串的个数是固定的吗
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

报纸
xingyun1688 学生认证  发表于 2014-5-12 21:45:11
SpencerMeng 发表于 2014-5-12 21:42
可以用substr命令
你第二个空格后面的数字串的个数是固定的吗
不是固定的 因为有些区号是3位的,有些区号是4位的。而且两个空格中间的有些事7位,有些是8位。

地板
xingyun1688 学生认证  发表于 2014-5-12 21:46:20
xingyun1688 发表于 2014-5-12 21:45
不是固定的 因为有些区号是3位的,有些区号是4位的。而且两个空格中间的有些事7位,有些是8位。
我本来想用Excel去做,可是发现分开后有很多是错的。

7
SpencerMeng 在职认证  发表于 2014-5-13 12:54:24
恩恩 头疼的问题啊。。
再想想看。
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

8
ywh19860616 发表于 2014-5-13 13:33:32
xingyun1688 发表于 2014-5-12 21:46
我本来想用Excel去做,可是发现分开后有很多是错的。
  1. clear
  2. input str25 num
  3. "010 62018885 62026699"
  4. "010 62018896 62026700"
  5. "015 52018896 72026700"
  6. end

  7. split num, parse(" ") gen(ndate)
  8. gen new=ndate1+" "+ndate2
  9. drop ndate1 ndate2
  10. order num new ndate3
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
xingyun1688 + 1 + 1 + 1 精彩帖子

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

一份耕耘,一份收获。

9
xingyun1688 学生认证  发表于 2014-5-13 15:50:15
ywh19860616 发表于 2014-5-13 13:33
谢谢 我试一下

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

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