楼主: yokohama-zhang
1134 5

[数据管理求助] 更改每行的数字序列,悬赏50个论坛币! [推广有奖]

  • 0关注
  • 0粉丝

硕士生

43%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
2.0011
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
580 点
帖子
44
精华
0
在线时间
264 小时
注册时间
2010-7-13
最后登录
2024-11-24

楼主
yokohama-zhang 发表于 2016-9-25 09:51:46 |AI写论文
50论坛币
数据形式是这样的x     y
1     1
1     1
1     2
1     2
1     2
2     4
2     4
2     5
2     5
2     5
2     5
.....
想整理成以下形式
x     y
1     1
1     1
1     2
1     2
1     2
2     1
2     1
2     2
2     2
2     2
2     2
.....

请大家赐教!!!

最佳答案

关键词:论坛币 数据形式

沙发
蓝色 发表于 2016-9-25 09:51:47
  1. *************************************
  2.           egen y0  = group(x y)
  3. bysort x: egen miny= min(y0)
  4.            gen y1  = y0-miny+1
  5. drop y0  miny
  6. list,sepby(x)
  7. *************************************
复制代码

  1. . *************************************
  2. .           egen y0  = group(x y)

  3. . bysort x: egen miny= min(y0)

  4. .            gen y1  = y0-miny+1

  5. . drop y0  miny

  6. . list,sepby(x)

  7.      +------------+
  8.      | x   y   y1 |
  9.      |------------|
  10.   1. | 1   1    1 |
  11.   2. | 1   1    1 |
  12.   3. | 1   2    2 |
  13.   4. | 1   2    2 |
  14.   5. | 1   2    2 |
  15.      |------------|
  16.   6. | 2   4    1 |
  17.   7. | 2   4    1 |
  18.   8. | 2   5    2 |
  19.   9. | 2   5    2 |
  20. 10. | 2   5    2 |
  21. 11. | 2   5    2 |
  22.      |------------|
复制代码


已有 1 人评分论坛币 收起 理由
夏目贵志 + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

藤椅
黃河泉 在职认证  发表于 2016-9-25 11:22:34
到底变化之"一般规则"为何?你的例子看不是很出来!

板凳
yokohama-zhang 发表于 2016-9-25 19:42:12
黃河泉 发表于 2016-9-25 11:22
到底变化之"一般规则"为何?你的例子看不是很出来!
确实是没有一般规律。只是想把Y的数字序列都变成1....,2.....,而不是其他数字。

报纸
夏目贵志 发表于 2016-9-27 09:27:04
这样就可以了
  1. . list x y

  2.      +-------+
  3.      | x   y |
  4.      |-------|
  5.   1. | 1   1 |
  6.   2. | 1   1 |
  7.   3. | 1   2 |
  8.   4. | 1   2 |
  9.   5. | 1   2 |
  10.      |-------|
  11.   6. | 2   4 |
  12.   7. | 2   4 |
  13.   8. | 2   5 |
  14.   9. | 2   5 |
  15. 10. | 2   5 |
  16.      |-------|
  17. 11. | 2   5 |
  18.      +-------+

  19. . do "C:\WINDOWS\TEMP\STD05000000.tmp"

  20. . replace y = y+10000
  21. (11 real changes made)

  22. . levelsof y
  23. 10001 10002 10004 10005

  24. . local levels = r(levels)

  25. . local i=0

  26. . local j=1

  27. . foreach l in `levels' {
  28.   2.   replace y = abs(mod(`j',2) - `i') if y==`l'
  29.   3.   local i = abs(2 - `i')
  30.   4.   local j = `j' + 1
  31.   5. }
  32. (2 real changes made)
  33. (3 real changes made)
  34. (2 real changes made)
  35. (4 real changes made)

  36. .
  37. end of do-file

  38. . list x y

  39.      +-------+
  40.      | x   y |
  41.      |-------|
  42.   1. | 1   1 |
  43.   2. | 1   1 |
  44.   3. | 1   2 |
  45.   4. | 1   2 |
  46.   5. | 1   2 |
  47.      |-------|
  48.   6. | 2   1 |
  49.   7. | 2   1 |
  50.   8. | 2   2 |
  51.   9. | 2   2 |
  52. 10. | 2   2 |
  53.      |-------|
  54. 11. | 2   2 |
  55.      +-------+
复制代码

地板
yokohama-zhang 发表于 2016-9-28 10:36:02
夏目贵志 发表于 2016-9-27 09:27
这样就可以了
多谢多谢!学习了!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-21 22:24