楼主: carol119
21754 31

[数据管理求助] 【求助】stata里有没有类似excel的vlookup功能的命令啊? [推广有奖]

  • 0关注
  • 0粉丝

大专生

60%

还不是VIP/贵宾

-

威望
0
论坛币
202 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
524 点
帖子
57
精华
0
在线时间
34 小时
注册时间
2006-3-18
最后登录
2021-5-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

刚开始学stata,宽恕我这种可能会惹恼版主的弱弱的问题吧……

帮帮忙啊,谢谢大家~

[此贴子已经被作者于2009-3-29 19:21:48编辑过]

二维码

扫码加我 拉你入群

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

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

关键词:vlookup lookup Stata Vlook EXCEL EXCEL Stata 命令 功能 vlookup

沙发
sungmoo 发表于 2009-3-31 16:07:00 |只看作者 |坛友微信交流群
用g……if……就可以了吧?

使用道具

藤椅
carol119 发表于 2009-3-31 19:21:00 |只看作者 |坛友微信交流群
g ……if……好像不行吧 我理解的这个g只能是利用单个的observation内的变量来生成新变量吧 是不是啊?或者您给具体例子?谢谢啦

使用道具

板凳
sungmoo 发表于 2009-3-31 21:17:00 |只看作者 |坛友微信交流群
你先给一个vlookup的例子,我看看是否可用g if来实现。

使用道具

报纸
carol119 发表于 2009-4-8 12:50:00 |只看作者 |坛友微信交流群

是这样的,我现在有两张表,

表格1:有a/b/c/d/e/f 六个变量

表格2:有a/b/g/h 三个变量

两个表格都没有重复观测,但是仅用a/b两个变量都不能唯一确定一个观测,我现在想把g/h加到表格1里头去

使用道具

地板
sungmoo 发表于 2009-4-8 14:14:00 |只看作者 |坛友微信交流群
以下是引用carol119在2009-4-8 12:50:00的发言:

是这样的,我现在有两张表,

表格1:有a/b/c/d/e/f 六个变量

表格2:有a/b/g/h 三个变量

两个表格都没有重复观测,但是仅用a/b两个变量都不能唯一确定一个观测,我现在想把g/h加到表格1里头去

如果这样,你根据什么原则,把g/h加到表格1中呢?

(这个问题与使用什么软件无关)

使用道具

7
carol119 发表于 2009-4-8 14:41:00 |只看作者 |坛友微信交流群

噢 我是想由表1和表2合成后面的样子。

表1

a b  c d  e  f

1 2 30 40 50 60

1 2 40 50 60 70

表2

a b  g

1 2 999

1 2 888

合并之后

a b  c  d  e  f   g

1 2 30 40 50 60 999

1 2 30 40 50 60 888

1 2 40 50 60 70 999

1 2 40 50 60 70 888

那如果是这样的话,我该怎么办啊?

使用道具

8
sungmoo 发表于 2009-4-8 15:28:00 |只看作者 |坛友微信交流群

*设表1对应的数据库为d1.dta,表2对应的数据库为d2.dta,两个文件都在默认目录中。

  
tempfile d
use d2.dta,clear
expand 2
g n=(int(_n/2)==_n/2)+1
save `d', replace
use d1.dta,clear
g t=1
expandcl 2, cl(t) gen(n)
merge using `d'
drop t n _merge

使用道具

9
sungmoo 发表于 2009-4-8 15:57:00 |只看作者 |坛友微信交流群
以下是引用carol119在2009-4-8 14:41:00的发言:我是想由表1和表2合成后面的样子

*这个合并逻辑,实质上是生成两个数据库的“Cartesian积”数据库。

*设数据库d1有n1个观测值,数据库d2有n2个观测值,则合并数据库有n1n2个观测值(设两个数据库的变量没有重名的,或者,重名的变量只取相同的单值)。

  
tempfile d
use d1.dta,clear
scalar n1=_N
use d2.dta, clear
scalar n2=_N
g n=_n
expand n1
sort n
save `d',replace
use d1.dta, clear
g t=1
expandcl n2, cl(t) gen(n)
sort n
merge n using `d'
drop t n _merge

[此贴子已经被作者于2009-4-8 16:08:52编辑过]

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

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

使用道具

10
carol119 发表于 2009-4-9 11:02:00 |只看作者 |坛友微信交流群

好多不知道的命令噢~~

谢谢你啦~~

我好好研究一下~~

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-7 12:45