楼主: 大日
2367 3

[编程问题求助] 如何引用特定变量值 [推广有奖]

  • 0关注
  • 0粉丝

本科生

78%

还不是VIP/贵宾

-

威望
0
论坛币
375 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
3
精华
0
在线时间
235 小时
注册时间
2017-4-12
最后登录
2024-4-29

150论坛币
现有一个问题想请教大家。我目前stata数据中有10个v1-v10,另有fid指出对应的城市。数据结构如下所示:
time v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 fid
2010 1  2   3   4   5  6  7  8   9   10   1
2011 2  3   4   5   6  7  8  9  10  11   2
2012 2  3   4   5   6  7  8  9  10  11   3
2013 1  2   3   4   5  6  7  8   9   10   4
……
我希望先取出fid的值,找到对应的v`fid',再对相应的城市相关数据求移动平均。但stata不允许v`fid'的代码写法。请教各位大佬,有没有解决方法!感激不尽!

最佳答案

acs495628 查看完整内容

首先,作者贴出的示例数据不具有代表性,其次,作者在描述需求时不够明白准确,让人看完很费解。根据作者提供的所有内容来看,猜测作者的需求应该是: 在一个面板数据中,求每一个城市每一年份 当年和前三期的移动平均值。为了能说明问题,我贴出了一段示例数据:fid year v 1 2001 34 1 2002 26 1 2003 13 1 2004 2 1 2005 86 1 2006 35 1 2007 7 1 2008 32 1 2009 55 1 2010 87 2 2001 20 2 2002 89 2 2003 ...
关键词:变量值 stata 2010 数据结构 2012
沙发
acs495628 发表于 2018-5-21 09:30:56 |只看作者 |坛友微信交流群
首先,作者贴出的示例数据不具有代表性,其次,作者在描述需求时不够明白准确,让人看完很费解。根据作者提供的所有内容来看,猜测作者的需求应该是: 在一个面板数据中,求每一个城市每一年份 当年和前三期的移动平均值。为了能说明问题,我贴出了一段示例数据:fid     year  v

1        2001        34
1        2002        26
1        2003        13
1        2004        2
1        2005        86
1        2006        35
1        2007        7
1        2008        32
1        2009        55
1        2010        87
2        2001        20
2        2002        89
2        2003        58
2        2004        36
2        2005        85
2        2006        39
2        2007        11
2        2008        75
2        2009        69
2        2010        68
3        2001        93
3        2002        45
3        2003        6
3        2004        33
3        2005        97
3        2006        72
3        2007        4
3        2008        74
3        2009        49
3        2010        71
4        2001        85
4        2002        13
4        2003        48
4        2004        87
4        2005        76
4        2006        25
4        2007        16
4        2008        74
4        2009        98
4        2010        72
5        2001        90
5        2002        26
5        2003        88
5        2004        88
5        2005        74
5        2006        91
5        2007        69
5        2008        21
5        2009        82
5        2010        4

该面板数据包含5个城市共10年的数据。

求当期和前三期的移动平均值代码如下
  1. xtset  fid year //设定为面板数据
  2. gen newvar = (L3.v1+L2.v1+L1.v1+v1)/4  //生成一个新变量,值为当期和前三期的平均
复制代码


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

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

使用道具

藤椅
黃河泉 在职认证  发表于 2018-5-21 10:43:16 |只看作者 |坛友微信交流群
1. 看不懂你的问题,请重新叙述 (以资料举例说明)。2. 你若要问程序,永远附上资料;若要附上资料,永远用 dataex 印出资料;先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

使用道具

板凳
大日 发表于 2018-5-21 11:26:22 |只看作者 |坛友微信交流群
谢谢老师的回答!数据集太大,dataex无法执行,故摘取了部分实例数据:
time        v1        v2        v3        v4        v5        fid
1            2          3          3          2          3        1
2            4          4          7          4          4        3
3            5          1          6          5          1        4
3            5          1          6          5          1        5
4            6          2          4          6          2        1
4            6          2          4          6          2        2
5            7          5          8          7          5        5
5            7          5          8          7          5        4
5            7          5          8          7          5        2
6            8          6          9          8          6        2
6            8          6          9          8          6        5
6            8          6          9          8          6        4
7            9          7          2          9          7        3
7            9          7          2          9          7        1
7            9          7          2          9          7        4
8            1          3          3          1          3        2
time指时间,v1-v5指五个城市不同时间的值,fid指城市代码。
希望:生成一列新变量,计算不同城市、不同时间下数值的4期移动平均。
比如:当期t=8,fid=2,则计算v2 t=5、6、7、8时的平均值。
不知我这样表述是否更加清晰些?

使用道具

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

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

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

GMT+8, 2024-5-13 02:29