楼主: denver
3383 10

[求助]关于数据倍增的问题 [推广有奖]

贵宾

六级木匠

已卖:776份资源

学科带头人

74%

还不是VIP/贵宾

-

威望
1
论坛币
190218 个
通用积分
7168.6040
学术水平
564 点
热心指数
508 点
信用等级
506 点
经验
66338 点
帖子
1490
精华
12
在线时间
1443 小时
注册时间
2004-11-17
最后登录
2025-12-7

初级学术勋章 初级热心勋章 初级信用勋章 中级学术勋章 中级热心勋章 高级学术勋章

楼主
denver 发表于 2009-5-14 10:36:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

现有一个数据结构如下

year
2001
2002
2003
2004
2005
2006
2007
2008

想变成如下结构

year
2001
2002
2003
2004
2005
2006
2007
2008
2001
2002
2003
2004
2005
2006
2007
2008

即成块的复制原数据,我用expand命令,但得不到这样的结构,推而广之,这也是处理panel data常用的方法,请问大家应该如何处理,谢谢。

二维码

扫码加我 拉你入群

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

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

关键词:panel data expand Panel year 数据结构 数据 倍增

回帖推荐

sungmoo 发表于10楼  查看完整内容

以下是引用denver在2009-5-14 14:13:00的发言:多谢sungmoo版主的讲解,使我真正理解了这个函数,但还有一个问题,就是在没有对n排序前,我发现n的出现并无规律可循,请问,n的赋值规则是什么?这个好像是随机的,我也不太清楚具体规则。(所以,后面要补上sort n)

sungmoo 发表于8楼  查看完整内容

这里,令c=某个常数,主要的作用是,把原数据库整体当作一个单位来复制。而生成的n,标识了每个观测值按前述复制规则复制的次数。对n排序后,即可得到原数据库保持原样被依次复制后的结构。

denver 发表于6楼  查看完整内容

问题解决!还是使用sungmoo斑竹的方法,复制三次的时候就用g c=2expandcl 3, cl(c) gen(n)就可以了,谢谢两位版主的帮助。刚才又试了一下,更易于理解的方法是g c=3expandcl c, cl(c) gen(n)sort n year [此贴子已经被作者于2009-5-14 13:52:51编辑过]

sungmoo 发表于3楼  查看完整内容

以下是引用denver在2009-5-14 10:36:00的发言:即成块的复制原数据,我用expand命令,但得不到这样的结构,推而广之,这也是处理panel data常用的方法,请问大家应该如何处理,谢谢。*一个保险但啰嗦一点的做法:sort yearg c=1expandcl 2, cl(c) gen(n)sort n yeardrop c

蓝色 发表于2楼  查看完整内容

可以的啊,. list     +---------------+     | year   income |     |---------------|  1. | 1999        1 |  2. | 2000        2 |  3. | 2001        3 |     +---------------+. expand 2(3 observa ...

本帖被以下文库推荐

Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

沙发
蓝色 发表于 2009-5-14 11:03:00

可以的啊,


. list

     +---------------+
     | year   income |
     |---------------|
  1. | 1999        1 |
  2. | 2000        2 |
  3. | 2001        3 |
     +---------------+

. expand 2
(3 observations created)

. list

     +---------------+
     | year   income |
     |---------------|
  1. | 1999        1 |
  2. | 2000        2 |
  3. | 2001        3 |
  4. | 1999        1 |
  5. | 2000        2 |
  6. | 2001        3 |
     +---------------+

.

[此贴子已经被作者于2009-5-14 11:03:55编辑过]

藤椅
sungmoo 发表于 2009-5-14 12:05:00
以下是引用denver在2009-5-14 10:36:00的发言:即成块的复制原数据,我用expand命令,但得不到这样的结构,推而广之,这也是处理panel data常用的方法,请问大家应该如何处理,谢谢。

*一个保险但啰嗦一点的做法:

sort year

g c=1

expandcl 2, cl(c) gen(n)

sort n year

drop c

板凳
denver 发表于 2009-5-14 13:19:00
以下是引用蓝色在2009-5-14 11:03:00的发言:

可以的啊,


. list

     +---------------+
     | year   income |
     |---------------|
  1. | 1999        1 |
  2. | 2000        2 |
  3. | 2001        3 |
     +---------------+

. expand 2
(3 observations created)

. list

     +---------------+
     | year   income |
     |---------------|
  1. | 1999        1 |
  2. | 2000        2 |
  3. | 2001        3 |
  4. | 1999        1 |
  5. | 2000        2 |
  6. | 2001        3 |
     +---------------+

.


expand 2可以,但expand 3就不行了
Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

报纸
denver 发表于 2009-5-14 13:24:00
以下是引用sungmoo在2009-5-14 12:05:00的发言:
以下是引用denver在2009-5-14 10:36:00的发言:即成块的复制原数据,我用expand命令,但得不到这样的结构,推而广之,这也是处理panel data常用的方法,请问大家应该如何处理,谢谢。

*一个保险但啰嗦一点的做法:

sort year

g c=1

expandcl 2, cl(c) gen(n)

sort n year

drop c

可能是我在问题中举得例子过于特殊了,这种方法同样不适用于数据复制3次
Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

地板
denver 发表于 2009-5-14 13:31:00

问题解决!

还是使用sungmoo斑竹的方法,复制三次的时候就用

g c=2

expandcl 3, cl(c) gen(n)

就可以了,谢谢两位版主的帮助。

刚才又试了一下,更易于理解的方法是

g c=3

expandcl c, cl(c) gen(n)

sort n year

[此贴子已经被作者于2009-5-14 13:52:51编辑过]

Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

7
sungmoo 发表于 2009-5-14 13:58:00
以下是引用denver在2009-5-14 13:31:00的发言:复制三次的时候就用

g c=2

expandcl 3, cl(c) gen(n)

第一步中,令c等于几,很关键吗?

8
sungmoo 发表于 2009-5-14 14:04:00

这里,令c=某个常数,主要的作用是,把原数据库整体当作一个单位来复制。

而生成的n,标识了每个观测值按前述复制规则复制的次数。

对n排序后,即可得到原数据库保持原样被依次复制后的结构。

9
denver 发表于 2009-5-14 14:13:00

多谢sungmoo版主的讲解,使我真正理解了这个函数,但还有一个问题,就是在没有对n排序前,我发现n的出现并无规律可循,例如

   +--------------+
     | year   c   n |
     |--------------|
  1. | 2001   1   2 |
  2. | 2001   1   1 |
  3. | 2001   1   3 |
  4. | 2002   1   3 |
  5. | 2002   1   1 |
     |--------------|
  6. | 2002   1   2 |
  7. | 2003   1   2 |
  8. | 2003   1   3 |
  9. | 2003   1   1 |
 10. | 2004   1   3 |
     |--------------|
 11. | 2004   1   2 |
 12. | 2004   1   1 |
 13. | 2005   1   3 |
 14. | 2005   1   1 |
 15. | 2005   1   2 |
     |--------------|
 16. | 2006   1   1 |
 17. | 2006   1   2 |
 18. | 2006   1   3 |
 19. | 2007   1   3 |
 20. | 2007   1   1 |
     |--------------|
 21. | 2007   1   2 |
 22. | 2008   1   2 |
 23. | 2008   1   1 |
 24. | 2008   1   3 |
     +--------------+

请问,n的赋值规则是什么?

Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

10
sungmoo 发表于 2009-5-14 15:15:00
以下是引用denver在2009-5-14 14:13:00的发言:多谢sungmoo版主的讲解,使我真正理解了这个函数,但还有一个问题,就是在没有对n排序前,我发现n的出现并无规律可循,请问,n的赋值规则是什么?

这个好像是随机的,我也不太清楚具体规则。(所以,后面要补上sort n)

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 09:18