楼主: ywh19860616
8634 13

如何根据某一规则,填充数据 [推广有奖]

学术权威

32%

还不是VIP/贵宾

-

威望
0
论坛币
870 个
通用积分
3583.8244
学术水平
854 点
热心指数
991 点
信用等级
637 点
经验
116346 点
帖子
3976
精华
0
在线时间
7729 小时
注册时间
2009-9-3
最后登录
2023-12-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
0    1
0    2
1    1
0    -1
0   -2
0   -3
0    1
0    2
1    1
0    -1
0    -2
0   -3

现在有一个变量var1,数据格式如下:

现在想要实现的是,查找出所有1所在的位置,并且按照如何规则赋值:
1上面的位置赋值为1,2,而1下面的位置赋值为-1,-2,-3,。
实现后为第二列形式所示。Stata中有没有与R中find对应的命令?
谢谢。


二维码

扫码加我 拉你入群

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

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

关键词:Stata 数据格式 find tata VaR 填充 如何

一份耕耘,一份收获。
沙发
sungmoo 发表于 2012-9-18 18:35:57 |只看作者 |坛友微信交流群
没看懂规则

使用道具

藤椅
ywh19860616 发表于 2012-9-18 18:47:41 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-9-18 18:35
没看懂规则
sungmoo老师,您好
规则是这样的:
下面第一列是我的原始数据,第二列是根据第一列生成的数据
0    1
0    2
1    1
0    -1
0   -2
0   -3
0    1
0    2
1    1
0    -1
0    -2
0   -3
比如我第一列有2个1(红色标注),那么在第一个1的上面生成1,2;在第一个1的下面生成-1,-2,-3
同时对于第二个1也是一样的。
不知道规则讲清了没有?

一份耕耘,一份收获。

使用道具

板凳
sungmoo 发表于 2012-9-18 18:49:47 |只看作者 |坛友微信交流群
我看不懂第二列生成规则
已有 1 人评分热心指数 收起 理由
ywh19860616 + 3 谢谢您的热心

总评分: 热心指数 + 3   查看全部评分

使用道具

报纸
ywh19860616 发表于 2012-9-18 18:51:43 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-9-18 18:49
我看不懂第二列生成规则
规则是这样的:
下面第一列是我的原始数据,第二列是根据第一列生成的数据
0    1
0    2
1    1
0    -1
0   -2
0   -3

0    1
0    2
1    1
0    -1
0    -2
0   -3
比如我第一列有2个1(红色标注),那么在第一个1的上面生成1,2;在第一个1的下面生成-1,-2,-3
同时对于第二个1也是一样的。

一份耕耘,一份收获。

使用道具

地板
sungmoo 发表于 2012-9-18 19:13:33 |只看作者 |坛友微信交流群
0
0
1
0
0
0
0
0
0
0
1
0

以上数据如何生成第二列?

使用道具

7
ywh19860616 发表于 2012-9-18 19:21:28 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-9-18 19:13
0
0
1
0    1
0    2
1    1
0    -1
0   -2
0   -3

0    1
0    2
1    1
0    -1
0    -2
0   -3

那列数据中,第3个元素和倒数第4个元素为1,其余为0.
所以对于第3个元素,因为其为1,所以她前面的0替换为1,2
而接她后面的3个元素赋值为-1,-2,-3

同样对于倒数第4个元素,因为其为1,所以她前面的2个0替换为1,2
而接她后面的3个0赋值为-1,-2,-3。

不知道这次说清楚没?
一份耕耘,一份收获。

使用道具

8
sungmoo 发表于 2012-9-18 19:55:54 |只看作者 |坛友微信交流群
两个1中间夹7个0,如何生成?(请以我给出的数据为例)

使用道具

9
ywh19860616 发表于 2012-9-18 20:13:43 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-9-18 19:55
两个1中间夹7个0,如何生成?(请以我给出的数据为例)
恩,以您的例子来看:
0
0
1
0
0
0
0
0
0
0
1
0
应该生成:
1
2
1
-1
-2
-3
0
1
2
1
0

其实我举的例子数据有一点的规则,这里最后面一个0假设不变。
一份耕耘,一份收获。

使用道具

10
夏目贵志 发表于 2012-9-18 20:59:55 |只看作者 |坛友微信交流群
别纠结了。用笨办法吧!
  1. . clear

  2. . *(2 variables, 12 observations pasted into data editor)

  3. . list var1 var2

  4.      +-------------+
  5.      | var1   var2 |
  6.      |-------------|
  7.   1. |    0      1 |
  8.   2. |    0      2 |
  9.   3. |    1      1 |
  10.   4. |    0     -1 |
  11.   5. |    0     -2 |
  12.      |-------------|
  13.   6. |    0     -3 |
  14.   7. |    0      1 |
  15.   8. |    0      2 |
  16.   9. |    1      1 |
  17. 10. |    0     -1 |
  18.      |-------------|
  19. 11. |    0     -2 |
  20. 12. |    0     -3 |
  21.      +-------------+

  22. . replace var1=-999 if var1==1
  23. var1 was byte now int
  24. (2 real changes made)

  25. . replace var1=1 if var1[_n+2]==-999
  26. (2 real changes made)

  27. . replace var1=2 if var1[_n+1]==-999
  28. (2 real changes made)

  29. . replace var1=-1 if var1[_n-1]==-999
  30. (2 real changes made)

  31. . replace var1=-2 if var1[_n-2]==-999
  32. (2 real changes made)

  33. . replace var1=-3 if var1[_n-3]==-999
  34. (2 real changes made)

  35. . replace var1=1 if var1==-999
  36. (2 real changes made)

  37. . list var?

  38.      +-------------+
  39.      | var1   var2 |
  40.      |-------------|
  41.   1. |    1      1 |
  42.   2. |    2      2 |
  43.   3. |    1      1 |
  44.   4. |   -1     -1 |
  45.   5. |   -2     -2 |
  46.      |-------------|
  47.   6. |   -3     -3 |
  48.   7. |    1      1 |
  49.   8. |    2      2 |
  50.   9. |    1      1 |
  51. 10. |   -1     -1 |
  52.      |-------------|
  53. 11. |   -2     -2 |
  54. 12. |   -3     -3 |
  55.      +-------------+

  56. .
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 1 + 1 + 1 谢谢

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

使用道具

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

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

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

GMT+8, 2024-5-2 12:10