楼主: shevaze
19608 18

[数据管理求助] stata如何取同一个样本中不同变量间的最大值? [推广有奖]

  • 2关注
  • 10粉丝

副教授

75%

还不是VIP/贵宾

-

威望
0
论坛币
2962 个
通用积分
44.2810
学术水平
9 点
热心指数
6 点
信用等级
3 点
经验
87196 点
帖子
720
精华
0
在线时间
1095 小时
注册时间
2010-11-13
最后登录
2022-4-11

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图:
如何去onehf 到eighthf中变量的值得最大值,并且再新一个变量中显示最大值的变量名呢?
求助!!不胜感激!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 最大值 一个样 eighth 不胜感激 最大值 如何 样本

未命名.jpg (18.16 KB)

未命名.jpg

沙发
fgleric 发表于 2013-4-5 22:43:07 |只看作者 |坛友微信交流群
用reshape做比较方便
已有 1 人评分经验 收起 理由
SpencerMeng + 20 观点有启发

总评分: 经验 + 20   查看全部评分

使用道具

藤椅
shevaze 发表于 2013-4-6 00:09:46 |只看作者 |坛友微信交流群
fgleric 发表于 2013-4-5 22:43
用reshape做比较方便
谢谢!

使用道具

板凳
lsyjy 发表于 2014-1-10 16:41:44 |只看作者 |坛友微信交流群
多谢,搜了好久。终于解决

使用道具

报纸
jjjj6666 发表于 2014-1-11 07:38:47 |只看作者 |坛友微信交流群
if a few variables, it's easier to use loop:

gen maxvar = ""
egen double _max=rmax( *hf)
foreach vm of var *hf {
    replace maxvar="`vm'" if _max==`vm'
}
drop _max

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
txje + 1 + 1 + 1 精彩帖子
SpencerMeng + 10 精彩帖子

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

使用道具

地板
劫梦骑士 发表于 2014-4-10 20:40:45 |只看作者 |坛友微信交流群
fgleric 发表于 2013-4-5 22:43
用reshape做比较方便
请问用reshape怎么做呀 能帮忙写出来命令吗

使用道具

7
abigail0825 发表于 2015-1-7 20:47:26 |只看作者 |坛友微信交流群
jjjj6666 发表于 2014-1-11 07:38
if a few variables, it's easier to use loop:

gen maxvar = ""
使用了您的方法,解决了我的问题,非常感谢!

使用道具

8
aaronedicon 在职认证  发表于 2017-5-27 11:29:39 |只看作者 |坛友微信交流群
jjjj6666 发表于 2014-1-11 07:38
if a few variables, it's easier to use loop:

gen maxvar = ""
大神啊,请问大神有什么stata编程的书推荐吗?

使用道具

9
黃河泉 在职认证  发表于 2017-5-27 16:14:12 |只看作者 |坛友微信交流群
试试
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(onehf twohf threehf)
  4. 1 2 3
  5. 4 6 5
  6. 9 7 8
  7. end

  8. egen m = rowmax(onehf-threehf)
复制代码

使用道具

10
黃河泉 在职认证  发表于 2017-5-28 07:38:59 |只看作者 |坛友微信交流群
第一个方法
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(onehf twohf threehf)
  4. 1 2 3
  5. 4 6 5
  6. 9 7 8
  7. end

  8. egen m = rowmax(onehf-threehf)

  9. // 1. Mathias Pedersen Heinze
  10. * Generating an auxiliary index variable
  11. gen index = _n

  12. * Adding an identical prefix to all variables
  13. foreach var of varlist onehf-threehf {
  14.     rename `var' prefix_`var'
  15. }

  16. * Reshaping to long data format
  17. reshape long prefix_, i(index) string

  18. * generating variable m with label from highest value
  19. by index (prefix_), sort : gen m = _j if _n == _N
  20. by index, sort : replace m = m[_N] if m == ""

  21. * Reshaping back to wide data format
  22. reshape wide prefix_ , i(index) j(_j) string

  23. * Removing prefix from variable names
  24. foreach var of varlist prefix_* {
  25.        local newname = substr("`var'", 8, .)
  26.        rename `var' `newname'
  27. }

  28. * Dropping auxiliary index variable
  29. drop index
复制代码

使用道具

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

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

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

GMT+8, 2024-4-28 18:23